Кажется, что невозможно передать аргументы первой функции в водопаде.
Можно ли это сделать другими способами, потому что мне действительно нужен первый, чтобы получить некоторые переменные.
Определите фиктивную функцию, которая вызывает вашу функцию с нужными вам переменными. Нравится:
async.waterfall ([
function(cb)
{
cb(null, username, password);
},
Authenticate,...
Отличный хак =)
Альтернативой является использование async.apply (аутентификация, имя пользователя, пароль) для предварительной привязки аргументов.
async.waterfall([
async.apply(func1, "1")
], function (err, result) {
});
function func1(par1, callback) {
console.log(par1); // Outputs: 1
}
@adisos спасибо! +1
Хммм ... Отличные хаки, правда ... Я тоже был озадачен тем, что не могу передать параметры в первую функцию водопада ... Но разве это не должно быть отправлено автору модуля (caolan) как ошибка / несоответствие? Вся аккуратность этого метода исчезает с этими хаками ...: - /
Это предполагаемое использование этих методов. async.apply был добавлен в основном для этого варианта использования AFAIK
В документации действительно приведены примеры использования водопада с функцией, однако, если кто-то захочет внести поправки в readme, чтобы показать использование водопада с применением, это было бы фантастически.
: +1: @adisos apply - это здорово! Я лишь немного пользуюсь этой библиотекой и постоянно впечатляюсь.
если у кого-то все еще есть эта проблема, постоянная функция работает очень хорошо.
async.waterfall([
async.constant(42),
function (value, next) {
// value === 42
},
], callback);
Для получения дополнительной информации посетите http://caolan.github.io/async/docs.html#.constant.
Самый полезный комментарий