gpt4 book ai didi

javascript - Node.js 同步循环

转载 作者:太空宇宙 更新时间:2023-11-04 02:57:52 27 4
gpt4 key购买 nike

我是 node.js 新手,我想知道是否可以在循环中同步迭代。假设在 for 循环中我调用了一个阻塞函数(读、写),并且我希望 for 同步执行(等待第一次迭代完成,然后执行第二次迭代,...)?我看到了一些关于异步模块的教程,但没有人讨论这个问题。

最佳答案

您不应该为此使用 for 循环。 for 循环将同时触发每个异步函数,这显然不是您想要的。您应该创建自己的系统来调用这些。尝试这样的事情:

  1. 您需要一个数组来保存您想要访问的所有 URL
  2. 您需要创建一个函数来调用列表中的第一个网址并等待响应
  3. 在此调用的回调函数中,完成所有异步工作后,调用相同的函数来重新启动进程,直到超出 URL 范围

应该看起来有点像这样:

var urls = new Array("google.com", "youtube.com", "stackoverflow.com");

function callFirstInArray() {
var url = urls.shift(); //removes the first from the array, and stores in variable 'url'

//do ajax work, and set callback function:
$.ajax(/*do stuff with the url variable*/, function () {
if (urls.length > 0) { //callback
callFirstInArray();
};
});
};

您的工作方式可能与我在这里描述的不完全一样,但它应该使用与之类似的概念。

注意:您可能需要一个额外的函数作用域来保护原始 URL 数组,因为 .shift() 会改变原始数组

关于javascript - Node.js 同步循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31077472/

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