Javascript 在node.js应用程序中完成后加入的并行http get请求

Javascript 在node.js应用程序中完成后加入的并行http get请求,javascript,node.js,parallel-processing,nonblocking,Javascript,Node.js,Parallel Processing,Nonblocking,我希望并行执行多个http get请求,映射结果,然后在所有结果就绪后重新同步(加入),以便呈现结果页面 伪代码: var value_needed_to_render_page = async.parallel([array of values to iterate over], function to call in parralel on array).join() return page_render(value_needed_to_render_page); 我一直在研究async和

我希望并行执行多个http get请求,映射结果,然后在所有结果就绪后重新同步(加入),以便呈现结果页面

伪代码:

var value_needed_to_render_page = async.parallel([array of values to iterate over], function to call in parralel on array).join()
return page_render(value_needed_to_render_page);

我一直在研究async和FutureJS,但没有找到一个好方法。

一个解决方案就是使用承诺
Q.all
将期望列表中的每个函数返回一个承诺,并将等待所有承诺得到解决。下面的示例使用q.js:

Q.all
接收函数列表,因此您也可以通过编程方式生成该列表

例如,“functionToFireRequest”如下所示:

function functionToFireRequest1() {
   var deferer = Q.defer();

   doMyRequestABCFoo( function() { deferer.resolve() } ); 
   // callback should be called inside your request after it finishes

   return deferer.promise;
}

then()是否返回由所有调用的结果组成的数组?或者我需要使用像ExpressPromise这样的中间件才能进行渲染吗?我是否只能在某些处理程序中呈现承诺?(按顺序)是、否、是需要作为参数传递给deferer.resolve的值?如中所示:doMyRequestABCFoo(函数(){myCalculation;deferer.resolve(所需的值)});然后似乎会将结果传递给回调参数,而不是返回结果。听起来是真的吗?然后(函数(x){return x;});不返回计算结果。您使用什么来呈现页面?如果使用express,则可以将res.render传递到
then(函数(结果){res.render(结果);
function functionToFireRequest1() {
   var deferer = Q.defer();

   doMyRequestABCFoo( function() { deferer.resolve() } ); 
   // callback should be called inside your request after it finishes

   return deferer.promise;
}