J'ai une classe ES6 qui contient une méthode avec async.waterfall. Waterfall obtient un tableau de fonctions comme premier argument. Donc, je le fais de cette façon:"this" dans les fonctions appartenant à un tableau
class RequestLog {
mainMethod() {
async.waterfall([
this.method1,
this.method2,
this.method3
]);
}
method1(cb) {
console.log(this); // outputs null
cb();
}
}
Mais comme il est indiqué ci-dessus, en première fonction I nef this === null
. Si c'était une fonction anon j'écrirais:
async.waterfall([ (cb) => { console.log(this) } ]);
mais je veux avoir des méthodes séparées pour la clarté du code. Alors, comment puis-je passer this
à la fonction nommée dans une classe?
réponse très complète, à la fois concis et complet. J'ai choisi la cinquième option car elle n'utilise pas 'bind' (j'espérais que je n'en aurai plus jamais besoin grâce à ES6) et montre quels paramètres vont à chaque fonction. Merci beaucoup! – Forseti