Я использую node.jsКак многократно вызывать функцию и ждать завершения до следующего вызова?
У меня есть функция с несколькими параметрами, которые мне нужно вызвать внутри цикла. Функция должна вызываться с помощью итератора цикла в качестве параметра, и цикл не должен вызывать функцию снова, пока не будет завершена обработка.
Что-то вроде этого (метод синхронизации): (обратите внимание, что SomeFunc асинхронная функция)
var totCount = 1000;
for (var x = 0 ; x < totCount ; x++) {
someFunc(x, parm2, parm3, parm4);
}
Я понимаю, что в узле, SomeFunc может выполняться в любом порядке, но в этом случае, это абсолютно должен выполняться с x = 0, затем 1, затем 2 и т. д.
Кажется, что вызов асинхронной библиотеки «async.whilst» сделает это, но у меня возникла проблема с переводом примера в мой реальный код жизни.
Вот пример для «async.whilst»:
var count = 0;
async.whilst(
function() { return count < 5; },
function (callback) {
count++;
setTimeout(callback, 1000);
},
function (err) {
// 5 seconds have passed
}
);
Обратите внимание, что, так как я потенциально должен вызвать функцию SomeFunc много раз, нормальный обратный вызов подход не будет работать.
Как это перевести в мой код? (Я предполагаю, что «async.whilst» - правильный подход. Если нет, пожалуйста, укажите правильный подход)
Является ли someFunc синхронным или вы можете предоставить обратный вызов в качестве аргумента, который вызывается, когда это делается? –
Если someFunc не является асинхронным, он не будет выполняться ни в каком порядке, а в порядке вызова функций. –
someFunc является асинхронным.Могу ли я просто добавить аргумент обратного вызова после всех параметров? – SeanDav