这是因为 JavaScript 的 Array.prototype.forEach 方法是同步的,但它不会等待回调函数的异步操作。当你在 forEach 的回调函数中使用异步操作(例如,Node.js 中的下载操作)时,forEach 会立即启动所有操作,而不会等待它们完成。
相反,for 循环可以与 async/await 一起使用,以便在继续下一次迭代之前等待每个异步操作完成。这就是为什么你可以使用 for 循环来同步下载。
以下是一个例子:
// 使用 forEach,这将并行启动所有下载 urls.forEach(async (url) => { const data = await download(url); console.log(data); }); // 使用 for 循环,这将按顺序下载每个 URL for (const url of urls) { const data = await download(url); console.log(data); }
标签:同步,nodejs,url,forEach,使用,data,下载 From: https://www.cnblogs.com/llcdbk/p/17993098