gpt4 book ai didi

jquery - jQuery 中的异步 foreach

转载 作者:行者123 更新时间:2023-12-01 03:46:53 27 4
gpt4 key购买 nike

我想要的是以异步模式运行代码以获得更快的响应(多线程)。

我有一个类似于“源”的数组,其中包含提要,我想要的是从每个源中获取数据。

我曾经想过这样的事情:

$.each(sources, function(key, val) {
JSON CALL OF EACH SOURCE
}

然后将所有结果分组到一个数组中并显示它们。问题是我希望以异步模式进行 json 调用,因为其中一些调用需要一些时间。

如何使用 jQuery 在异步模式下执行“each”?

最佳答案

使用延迟对象:

// get an array of jqXHR objects - the AJAX calls will
// run in parallel, subject to browser limits on the number
// of concurrent connections to each host
var defs = $.map(sources, function() {
return $.ajax({ url: this });
});

// when they're all done, invoke this callback
$.when.apply($, defs).done(function() {
// "arguments" array will contain the result of each AJAX call
...
});

要更改 AJAX 函数以便仅返回 data 参数,您可以使用 .pipe():

var defs = $.map(sources, function() {
return $.ajax({ url: this }).pipe(function(data, text, jqxhr) {
return data; // filtered result
});
});

关于jquery - jQuery 中的异步 foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13059000/

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