Async: Argumente an die erste Funktion im Wasserfall übergeben?

Erstellt am 25. Feb. 2011  ·  9Kommentare  ·  Quelle: caolan/async

Es scheint nicht möglich zu sein, Argumente an die erste Funktion im Wasserfall zu übergeben.

Könnte dies auf andere Weise erfolgen, da ich wirklich den ersten brauche, um einige Variablen zu erhalten.

Hilfreichster Kommentar

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

});

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

Alle 9 Kommentare

Definieren Sie eine Dummy-Funktion, die Ihre Funktion mit den benötigten Variablen aufruft. So was:
async.waterfall([

function(cb)
{
  cb(null, username, password);
},
Authenticate,...

Toller Hack =)

Eine Alternative besteht darin, async.apply(authenticate, username, password) zu verwenden, um die Argumente im Voraus zu binden.

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

});

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

@adisos danke! +1

Hmmm ... Tolle Hacks, wirklich ... Ich war auch verwirrt, weil ich keine Parameter an die erste Wasserfallfunktion übergeben konnte ... Aber sollte dies nicht als Fehler / Inkonsistenz an den Modulautor (caolan) gesendet werden? Die ganze Ordentlichkeit dieser Methode verschwindet mit diesen Hacks... :-/

Dies ist die beabsichtigte Verwendung dieser Methoden. async.apply wurde hauptsächlich für diesen Anwendungsfall hinzugefügt AFAIK

Die Dokumentation enthält Beispiele für die Verwendung von Wasserfall mit einer Funktion, aber wenn jemand die Readme-Datei ändern möchte, um die Verwendung von Wasserfall mit Apply zu zeigen, wäre das fantastisch

:+1: @adisos bewerben ist

Falls noch jemand dieses Problem hat, funktioniert die Konstantenfunktion sehr gut.

async.waterfall([
    async.constant(42),
    function (value, next) {
        // value === 42
    },
], callback);

Weitere Informationen finden Sie unter http://caolan.github.io/async/docs.html#.constant

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen