【发布时间】:2013-01-10 09:26:35
【问题描述】:
我有以下代码在存储库中使用$.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()函数?
【问题讨论】:
-
$.when块中的第二个自动解析对象有什么意义? -
抱歉,我不知道您指的是哪个对象 - 我刚刚开始使用 deferred 和 promises。基本上,我要做的就是执行 getUserDetails 并进行一些处理,包括返回一些数据,一旦完成,就使用这些数据作为其他两个函数的输入参数(不必按顺序执行)。如果有更好的方法,我真的很感兴趣?
标签: javascript jquery jquery-deferred