Javascript 如何从延迟对象访问返回值?

Javascript 如何从延迟对象访问返回值?,javascript,jquery,jquery-deferred,Javascript,Jquery,Jquery Deferred,我有以下代码,它在存储库中使用$.getJSON返回一些数据,然后由其他函数使用 $.when( repository.getUserDetails().done(dataPrimer.getUserDetails), $.Deferred( function (deferred) { deferred.resolve(); } ) ).done( function () { repositor

我有以下代码,它在存储库中使用
$.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()
,我想确信我正在使用一种体面的方法,因此我正在寻找“最佳实践”方法来返回参数并在
存储库中使用它。getUserPage()
函数请?

您应该使用它。示例中的“数据”——由“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();
        })

});

$中第二个自动解析对象的意义是什么。当
块时?对不起,我不知道你指的是哪个对象-我刚刚开始延迟和承诺。基本上,我所要做的就是执行getUserDetails并进行一些处理,包括返回一些数据,完成后将这些数据用作其他两个函数(不必按顺序执行)的输入参数。如果有更好的方法,我真的会很感兴趣?谢谢,我不得不返工,因为这是我想要的getUserDetails的返回,但这成功了。