gpt4 book ai didi

没有回调金字塔的 JQuery Chaining Deferreds

转载 作者:行者123 更新时间:2023-12-01 01:35:22 25 4
gpt4 key购买 nike

有没有一种方法可以在没有回调金字塔的情况下链接 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

谢谢。

最佳答案

您的代码的问题是您正在传递 .then() 一个 jQuery 对象,而它需要一个 function。此代码根据需要执行 foo-bar-done。

$.Deferred(function(dfd) {
setTimeout(function() {
console.log('Foo');
dfd.resolve();
}, 1000);
}).then(function(){
return $.Deferred(function(dfd) {
console.log('Bar');
dfd.resolve();
});
}).done(function() { console.log('done') });

关于没有回调金字塔的 JQuery Chaining Deferreds,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15443641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com