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
}
Буря не требуется. Если вам нужна библиотека управления исполнением / потоком, я бы порекомендовал Futures , потому что она не компилирует ваш код и «скрывает магию».
Ранее вы просматривали каждый из них и выполняли их в последовательном порядке, помещая их в массив по порядку.
На этот раз вы выполняете их все параллельно и приказываете каждому назначить правильный упорядоченный ключ в массиве их собственному значению.
_.range
Создает массив, содержащий значения от 0 до 99.