Ich habe eine ES6-Klasse, die eine Methode mit async.waterfall enthält. Waterfall erhält als erstes Argument ein Array von Funktionen. So mache ich es so:"This" in Funktionen, die zu einem Array gehören
class RequestLog {
mainMethod() {
async.waterfall([
this.method1,
this.method2,
this.method3
]);
}
method1(cb) {
console.log(this); // outputs null
cb();
}
}
Aber wie oben erwähnt, in der ersten Funktion I Kirchenschiff this === null
. Wenn es anon Funktion wäre, würde ich schreiben:
aber ich möchte getrennte Methoden für Code Klarheit haben. Also, wie übergebe ich this
an benannte Funktion in einer Klasse?
Sehr umfassende Antwort, die beide prägnant und umfassend. Ich wählte die fünfte Option, da sie 'bind' nicht verwendet (ich hoffte, dass ich sie dank ES6 nie wieder brauche) und zeigt an, welche Parameter zu jeder Funktion gehören. Danke vielmals! – Forseti