有没有办法在没有回调金字塔的情况下链接 JQuery Deferreds 来一个接一个地执行?
现在我必须做这样的事情:
$.Deferred(function(dfd) {
setTimeout(function() {
console.log('Foo');
dfd.resolve();
}, 1000);
})
.done(function() {
$.Deferred(function(dfd) {
console.log('Bar');
dfd.resolve();
}).done(function() {
console.log('done');
});
});
输出:Foo,Bar,完成
我希望能够做这样的事情:
$.Deferred(function(dfd) {
setTimeout(function() {
console.log('Foo');
dfd.resolve();
}, 1000);
})
.then($.Deferred(function(dfd) {
console.log('Bar');
dfd.resolve();
}))
.done(function() { console.log('done') });
不需要的输出:Bar、Foo、done
谢谢。