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"。示例中的“数据”——“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 回答