我有以下代码在存储库中使用$.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()
函数吗?
答案 0 :(得分: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();
})
});