gpt4 book ai didi

javascript - 如何让 Jquery $.each 循环在迭代之前等待操作完成?

转载 作者:行者123 更新时间:2023-11-28 01:37:06 26 4
gpt4 key购买 nike

我有一个函数,它有一个 $.each 来循环对象的键并执行操作。在此循环中,我调用一个函数,该函数依次调用服务器以获取一些数据并在回调中对其进行处理。这些调用是异步的,因此 $.each 不会等待数据到来和回调执行其应该执行的操作并继续迭代。我如何让 $.each 循环等到我完成操作然后继续。

$.each(messages,function(key) {  
//do something
if(some Condition) {
getfromserver(token,myCallback); }
//do something
});




function myCallback(data)
{
//do something with data
}

最佳答案

你可以这样做而不是$.each,我称之为回调循环:

iterate(messages, 0);

function iterate(arr, i) {
if(i==arr.length) return;
var message = arr[i];
//you might want to create your token based on current message
var token = "...";

if(/*some Condition*/){
getfromserver(token, function (data) {
myCallback(data);
iterate(arr, i++);
});
}
//use this else if you want to do something like 'continue'
//and don't use it if it kinda 'break'
else iterate(arr, i++);
}

function myCallback(data) {
//do something with data
}

关于javascript - 如何让 Jquery $.each 循环在迭代之前等待操作完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21415089/

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