我想知道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")
}
]);
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我希望获得输出:
功能:2
功能:1
但是,控制台抛出反转,发生了什么?谢谢.
我想在我的服务器节点上启动异步http调用,我看到了async节点模块,我想async.parallel我们可以做到这一点.
记录的示例非常清楚,但我不知道如何管理多个http调用.
我尝试了下面的示例,但它甚至没有启动http调用:
var http = require('http');
var Calls = [];
Calls.push(function(callback) {
// First call
http.get('http://127.0.0.1:3002/first' callback);
});
Calls.push(function(callback) {
// Second call
http.get('http://127.0.0.1:3002/second' callback);
});
var async = require('async');
async.parallel(Calls, function(err, results) {
console.log('async callback: '+JSON.stringify(results));
res.render('view', results);
});
Run Code Online (Sandbox Code Playgroud)
如果我单独启动http请求,我确实有一个结果,但我调用异步回调 async callback: [null,null]
数组和循环,但我希望能够并行运行所有这些,因为我不想一个接一个地运行.
我基本上希望将所有端点调用状态代码,正文和时间存储为数组,并将它们作为结果返回,而不管端点中是否存在错误.
我正在使用Bluebird,我如何使用它的功能来解决这个问题?