Concurrency Nodejs:并行请求,串行响应
我为stormjs做了些什么,你可以查一下 但是并行循环仍然存在问题,例如,我们有一个函数Concurrency Nodejs:并行请求,串行响应,concurrency,node.js,Concurrency,Node.js,我为stormjs做了些什么,你可以查一下 但是并行循环仍然存在问题,例如,我们有一个函数requestContext(index,callback(err,context))哪个远程获取上下文“{index}”,我们需要获取[0-99]的上下文并按顺序将上下文推送到数组中,[context0…context99] 但很明显,这个输出无法工作 我仍然想知道noder是如何完成这项任务的,但您必须使这些请求并行,而不是一对一,它应该是并行请求和串行推送 var counter = 0; // cr
requestContext(index,callback(err,context))
哪个远程获取上下文“{index}”,我们需要获取[0-99]
的上下文并按顺序将上下文推送到数组中,[context0…context99]
但很明显,这个输出无法工作
我仍然想知道noder是如何完成这项任务的,但您必须使这些请求并行,而不是一对一,它应该是并行请求和串行推送
var counter = 0;
// create an array with numbers 0 to 99.
_.range(0,100).forEach(function(key, value, arr) {
// for each of them request context
requestContext(key, function(err, context) {
// add the context to the array under the correct key
if (!err) {
arr[key] = context;
}
// increment counter, if all have finished then fire finished.
if (++counter === 100) {
finished(arr);
}
});
});
function finished(results) {
// do stuff
}
不需要暴风雨。如果您想要一个执行/流控制库,我建议您使用,因为它不会编译您的代码,而且“隐藏了魔力”
之前,您对每一个进行递归,并以串行顺序执行它们,将它们按顺序推入数组
这一次,您将并行执行它们,并告诉每一个将数组中正确的有序键分配给它们自己的值
创建包含值0到99的数组 你为什么用storm来做这个?你为什么不写一篇没有风暴的文章呢?我不是在用风暴,我是在为这个创作风暴。我必须确保storm得到了这个案例的最佳代码,也是类似的案例。问题是如何在没有stormjs的情况下做到这一点。谢谢。为什么以前串行和这个并行,因为代码说。下一个循环是否取决于上一个删除,将决定串行还是并行。@guillin上一个示例让每个请求返回下一个请求所需的
url
。这一次,你有所有的100个URL在前面,所以你可以并行启动它们。