gpt4 book ai didi

JavaScript 异步竞争条件

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:07:49 26 4
gpt4 key购买 nike

有对象数组,通过并行 ajax 请求进行扩展。当最后一个请求完成时,应该处理数组。我看到的唯一解决方案是:

function expandArray(objects, callback){
number_of_requests=objects.length-1;
for(i in objects){
$.getJSON(request,function(){
//expanding array
if(--number_of_reuests==0){
callback();
}
});
}
}

但是由于请求是并行执行的,因此有可能出现竞争条件。两个“线程”可以同时编辑变量 number_of_requests。如何避免竞争条件的机会?

最佳答案

是否可以重新设计您的 AJAX,以便所有内容都在一个请求中进行?系统的这一部分将成为最大的瓶颈并且可能会变得棘手(正如您所发现的),因此您提出的请求越少越好。

我能想到的唯一其他方法是,如果每个请求都改变其相关对象,设置一个标志值或其他东西,然后循环遍历所有对象以检查是否所有标志都已设置。

关于JavaScript 异步竞争条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1405197/

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