Async: Передать аргументы первой функции водопада?

Созданный на 25 февр. 2011  ·  9Комментарии  ·  Источник: caolan/async

Кажется, что невозможно передать аргументы первой функции в водопаде.

Можно ли это сделать другими способами, потому что мне действительно нужен первый, чтобы получить некоторые переменные.

Самый полезный комментарий

async.waterfall([
    async.apply(func1, "1")
], function (err, result) {

});

function func1(par1, callback) {
    console.log(par1); // Outputs: 1
}

Все 9 Комментарий

Определите фиктивную функцию, которая вызывает вашу функцию с нужными вам переменными. Нравится:
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.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги