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的返回,但这成功了。