gpt4 book ai didi

javascript - jQuery 多个延迟在返回之前解析和处理

转载 作者:行者123 更新时间:2023-12-03 11:57:45 28 4
gpt4 key购买 nike

我已经看到许多关于同时等待多个延迟的问题得到解答,但我很难等待,然后在触发最终的“完成”事件之前处理这些延迟。考虑下面的代码,其中我有一个正在等待的延迟列表,然后对于每个延迟,我想处理解析值,以便在它们全部完成后我可以将每个延迟的结果作为主干集合返回。

我遇到的问题是该事件在所有 deferred.done() lambda 完成之前被触发。有什么方法可以使其同步吗?

(我正在使用 Backbone 模型/集合和 Underscore)

var deferreds = [];
_.forEach(upcs, function(upc){
deferreds.push(getProduct(upc)); //getProduct() returns a deferred
});

$.when.apply($, deferreds).done(function(){
var products = new Products();

_.forEach(deferreds, function(deferred){
deferred.done(function(product) { //deferred resolve() returns product
products.add(product);
});
});

that.trigger("claimed", products); //fire fully resolved collection
});

最佳答案

所有 promise 的结果都可以通过 $.when promise's 获得。 结果。它们被指定为 arguments给您的处理程序:

$.when.apply($, deferreds).done(function() {
var products = new Products();
_.forEach(arguments, function(product) {
products.add(product);
});
that.trigger("claimed", products); //fire fully resolved collection
});

关于javascript - jQuery 多个延迟在返回之前解析和处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25528761/

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