gpt4 book ai didi

jquery - 将多个 jQuery Deferred 对象组合成一个新的 Deferred 对象

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

这是代码: http://jsbin.com/lizami/edit?js,console

将代码也粘贴到此处:

var aaa = $.Deferred();

var bbb = function(data){

console.log(data);

var dfd = $.Deferred();
setTimeout(function(){
dfd.resolve("bbb is done");
}, 1000);
return dfd.promise();
};

var ccc = function(data){
console.log(data);

var dfd = $.Deferred();
setTimeout(function(){
dfd.resolve("ccc is done");
}, 1000);
return dfd.promise();
};

var ddd = function(data){
console.log(data);

return data;
};



aaa.then([bbb,ccc]).then(ddd);
aaa.resolve("aaa is done");

我想要的是在解析aaa时启动两个新的延迟:bbbccc。当 bbbccc 都得到解析时。使用 bbbccc 的解析数据调用 ddd

这可能吗? jsbin 不起作用

最佳答案

在 jQuery 中,您可以使用 $.when() 将多个 Promise 合并为一个。

aaa.then(function() {
return $.when(bbb(), ccc());
}).then(ddd);

这将等待aaa解析,然后它将运行bbb()ccc(),当它们都解析时,然后它会调用ddd()

工作演示:http://jsfiddle.net/jfriend00/2f7btsq7/

关于jquery - 将多个 jQuery Deferred 对象组合成一个新的 Deferred 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33060171/

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