Когда вы используете async
в функции внутри водопада, аргумент callback
отсутствует.Вместо вызова callback(null, data)
вы разрешаете data
.
async.waterfall([
(callback) => {
callback(null, 'test');
},
async value1 => {
const data = await send("http://google.com");
return data;
},
(value1, callback) => {
// value1 is the resolve data from the async function
}
], (err) => {
if (err) throw new Error(err);
});
Из документов :
Везде, где мы принимаем асинхронную функцию в стиле узла,мы также напрямую принимаем асинхронную функцию ES2017.В этом случае асинхронной функции не будет передан окончательный аргумент обратного вызова , и любая брошенная ошибка будет использоваться в качестве аргумента err неявного обратного вызова, а возвращаемое значение будет использоваться в качестве значения результата.(то есть отклонение возвращенного Promise становится аргументом обратного вызова err, а разрешенное значение становится результатом.)