关于这个问题已经有很多帖子了,但我仍然无法解决这个特殊问题。
如果我必须调用三个外部站点 Facebook、Twitter 和 Instagram,并且我以异步并行方式启动所有三个站点,它会挂起 20 秒等待 Facebook 响应,我不确定会发生什么。Twitter 和 Instagram 的调用是否开始,并且它们都在调用 Facebook 之前运行并可能完成,或者整个用户线程是否暂停直到下一轮事件循环,并且另一个用户调用通过?在我们看来是后者。还是整个线程都停止并等待?
根据请求,这里是代码的精简版本。Service_requests 是一组调用 Facebook、Instagram 和 Twitter 的函数。这里还有很多其他的东西,但它的内容很简单。
Async.parallel(service_requests, function (err, results)
{
if (err) { next(err); return; }
var articles = [];
for (var i = 0; i < results.length; i++)
{
articles = articles.concat(results[i]);
}
next(null, articles);
});