5

$.getJSONリポジトリ内で使用して他の関数で使用されるデータを返す次のコードがあります。

$.when(
    repository.getUserDetails().done(dataPrimer.getUserDetails),

    $.Deferred(
        function (deferred) {
           deferred.resolve();
        }
    )

).done(
   function () {
       repository.getUserPolicyTitles().done(dataPrimer.getUserPolicyTitles);
   },

   function () {
       repository.getUserPage().done();
   }
);

repository.getUserDetails().done(dataPrimer.getUserDetails) これは機能しますが、次のパラメータとして使用できる値を返す必要があります。repository.getUserPage().done();

getUserDetails の dataPrimer モジュールは現在、次のようになっています。

var getUserDetails = function (jsonString) {
    var object = parser.parse(jsonString);
    userDetails.userName = object.user.userName;
    userDetails.lastPolicyWorkedOn = object.user.lastPolicyWorkedOn;
    return userDetails.lastPolicyWorkedOn;
}

喜びがないなど、いくつか試してみました.pipe()が、適切なアプローチを使用していると確信したいので、パラメーターを返し、repository.getUserPage()関数で使用する「ベストプラクティス」の方法を探していますか?

4

1 に答える 1

0

「then」を使用する必要があります。例の「data」-「getUserPolicyTitles」関数によって返されるデータ。

$.when(
    repository.getUserDetails().done(dataPrimer.getUserDetails),

    $.Deferred(
        function (deferred) {
           deferred.resolve();
        }
    )

).done(function() {

    repository
        .getUserPolicyTitles()
        .done(dataPrimer.getUserPolicyTitles)
        .then(function(data) {
            repository.getUserPage().done();
        })

});
于 2013-01-10T13:40:44.883 に答える