我有两个对象,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还不存在,所以我不相信我可以立即使用它。saveObjectA
saveObjectB
saveObjectB
$.when
非常感谢有关如何以更优雅的方式解决此问题的想法!