已关闭。此问题需要details or clarity。目前不接受回答。
**要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
const sleep = (ms) => new Promise((resolve) => { setTimeout(resolve, ms) })
async function dbQuery() {
const start = Date.now();
await sleep(1000);
const end = Date.now();
console.log(end - start);
}
async function main() {
const list = [1, 2, 3];
const promises = list.map(m => dbQuery(m));
await Promise.all(promises);
}
main();
Output:
node-space node is-parallel.js
1003
1009
1009
我希望dbQuery函数在调用所有3个promise时同时执行。现在我正在调用它们并将其推入数组并等待它们,我相信这不是真正的并行,它像是以串行方式调用每个函数并将其推入数组。sleep
函数我已经添加了,所以模拟的东西,
1条答案
按热度按时间j9per5c41#
JavaScript中的异步代码允许交错执行代码,但不允许并行执行。
在Node中可以使用worker threads内置模块来实现组件化。如果你想要一个web标准的解决方案,你也可以使用Web Workers。