我有以下代码。
var async = require('async');
async.parallel({
f2: function(callback){
for (var i=0;i< 100000000;i++){
}
console.log("f2");
callback(null,"function 2");
},
f1: function(callback){
console.log("f1");
callback(null,"function 1");
},
},
function(err, results) {
console.log(results);
});
我跑到上面......
结果:
f2
f1
{ f2: 'function 2', f1: 'function 1' }
为什么首先得到f2? 为什么不f1? f1函数比f2函数简单。
我认为..我不能像异步一样。
我不想使用SetTimeOut,proccess.NextTick等......
答案 0 :(得分:1)
函数parallel()是关于并行启动I / O任务,而不是关于代码的并行执行。如果您的任务不使用任何计时器或执行任何I / O,它们实际上将被串行执行。每个任务的任何同步设置部分将一个接一个地发生。 JavaScript仍然是单线程的。参考:https://caolan.github.io/async/docs.html#parallel