У меня есть этот бит кода с node.js.node.js Асинхронные функции
Я хочу сделать две параллельные задачи, и мне все равно, в каком порядке они заканчиваются. В итоге оба будут вставлять что-то в базу данных, но сначала я должен выполнить некоторые вычисления и некоторую замену строк.
Нормально ли, что моя тестовая функция всегда заканчивается первым, когда я запускаю этот бит?
Выполняю код 10-20 раз, и тест всегда заканчивается перед test2.
async.parallel([
function (callback) {
v2 = test(200);
callback(null, v2);
},
function (callback) {
v3 = test2(300);
callback(null, v3);
}
], function (err, results) {
console.log(results)
});
Здесь моя тестовая функция будет иметь 2-3 вложенных цикла, будет подсчитывать большое количество информации в памяти.
function test(a) {
for (var i = 0; i < 1000000; i++) {
a = a + 1;
}
console.log('Finished 1');
return a + 100;
}
Эта функция должна закончить первую, потому что есть только один операция в нем ...
function test2(a) {
console.log('Finished 2');
return a + 200;
}
Как вы тестируете, что он заканчивается первым? Если это просто первый элемент в массиве, это потому, что async сохраняет порядок вывода порядка функций. –