gpt4 book ai didi

javascript - Node.js - Async.js : how does parallel execution work?

转载 作者:IT老高 更新时间:2023-10-28 22:59:31 26 4
gpt4 key购买 nike

我想知道在 async.js 中并行执行是如何工作的

async = require('async')

async.parallel([
function(callback){
for (var i = 0; i < 1000000000; i++) /* Do nothing */;
console.log("function: 1")
},
function(callback){
console.log("function: 2")
}
]);

在上面的例子中,我期望得到输出:

function: 2

function: 1

但是,控制台抛出了相反的情况,发生了什么?谢谢。

最佳答案

您会得到意想不到的答案,因为 async 首先启动 function: 1 并且它不会将控制权释放回事件循环。 function: 1 中没有异步函数。

Node.js 是一个单线程异步服务器。如果你用一个长时间运行的 CPU 任务阻塞了事件循环,那么在你的长时间运行的 CPU 任务完成之前,不能调用其他函数。

对于大的 for 循环,尝试发出 http 请求。比如……

async = require('async')
request = require('request')

async.parallel([
function(callback){
request("http://google.jp", function(err, response, body) {
if(err) { console.log(err); callback(true); return; }
console.log("function: 1")
callback(false);
});
},
function(callback){
request("http://google.com", function(err, response, body) {
if(err) { console.log(err); callback(true); return; }
console.log("function: 2")
callback(false);
});
}
]);

关于javascript - Node.js - Async.js : how does parallel execution work?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17137134/

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