Я пытаюсь работать с async в узле js, чтобы контролировать поток выполнения некоторых функций. В приведенном ниже коде есть три объявленные функции, которые должны печатать соответственно «один», «два» и «три» вместе с выполнением других задач (печать только для того, чтобы я мог видеть, что будет выполняться когда).Async - callback не является функцией
async.waterfall([
function(callback) {
settings();
console.log("1");
callback(null, 'one');
},
function(callback) {
profile();
console.log("2");
callback(null, 'two');
},
function(callback) {
console.log("3");
groups();
callback(null, 'two');
}
]);
Так что я получаю ошибку «обратный вызов не является функция» в строке обратного вызова (нуль, «два»); Честно говоря, это может быть очень сомнительным вопросом, и я не совсем понимаю, как работает асинхронный водопад. Но я серьезно старался, читая примеры, пытаясь реализовать короткий код и пытаться поиграть с ним.
Интересно, что если async.series используется вместо async.waterfall, такой ошибки нет. Однако async.series будет печатать 1, 2, 3, три, один, два. Цифры внутри модели водопада печатаются последовательно, но функции внутри не выполняются в правильном порядке.
Следует отметить, что первые две функции - настройки и профиль - включают чтение и вычисления db, тогда как третий печатает только некоторые результаты.
Эта проблема возникает, когда вы вставляете вызовы 'async', особенно если вы вызываете' async.series' внутри 'async.waterfall' или наоборот,' async' станет ненадежным. – Sandwich