我有以下代码在存储库中使用 $.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()
函数中使用它好吗?
最佳答案
你应该使用 "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();
})
});
关于javascript - 如何从延迟对象访问返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14254503/