我有两个对象,ObjectA并且ObjectB. 我只想ObjectB在ObjectA完成后保存,但我想返回一个包含两者结果的承诺。
这是我第一次破解它以显示我想要的功能。此功能工作正常,只是丑陋,肯定有更好的方法。
函数saveObjectA和saveObjectB两者都返回$.post()承诺。
saveAAndBSequentially: function () {
var dfd = $.Deferred();
saveObjectA().done(function () {
saveObjectB().done(function () {
dfd.resolve();
}).fail(function () {
dfd.reject();
});
}).fail(function () {
dfd.reject();
});
return dfd.promise();
}
我只是在trigger上使用$.when并添加一个done回调,但是 deferred for还不存在,所以我不相信我可以立即使用它。saveObjectAsaveObjectBsaveObjectB$.when
非常感谢有关如何以更优雅的方式解决此问题的想法!