gpt4 book ai didi

带有暂停的 javascript for 循环

转载 作者:行者123 更新时间:2023-11-29 16:29:18 25 4
gpt4 key购买 nike

我有一个 for 循环,它运行一组函数并调用每个函数。理想情况下,我想以特定的顺序调用它们,因为其中一个的输出可能会影响其后其他的输出。有没有办法在不设置时间间隔或计时器的情况下做到这一点?

抱歉...我想我应该多解释一下...我想到的示例有时可能会使用ajax,这意味着我必须等待ajax成功才能继续。 (其他时候我不需要等待ajax成功)所以我想设置一个条件,例如if(success){继续for循环}其中success是在循环的每个部分的成功上设置的变量。

最佳答案

Javascript 同步运行,这意味着没有两个函数可以同时执行。只要您按照正确的顺序运行它们,就不会有任何问题。

当等待 ajax 响应时,您可以将 XMLHttpRequest 设置为同步运行(因此,sjax 而不是 ajax)或设置某种函数迭代器,其工作方式如下:

var FunctionIterator = {
nextFunction: 0,
functionArray: [],
callNext: function ()
{
this.functionArray[this.nextFunction].apply(null, arguments);
this.nextFunction++;
}
}

然后你可以这样使用它:

FunctionIterator.functionArray.push(someFunctionName);
FunctionIterator.functionArray.push(function (arg1) { alert(arg1); });

FunctionIterator.callNext(arg1, arg2, arg3);

也许是不言自明的,但每次运行 callNext 函数时,都会调用下一个函数,并且数组索引加 1,为下一个函数调用做准备。

关于带有暂停的 javascript for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2049250/

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