Der Versuch, herauszufinden, wie man eine Pfeilfunktion unter Beibehaltung this.emit()
. In Zug und ES6 Ich habe eine Funktion wie so:this.emit() in einer Pfeilfunktion
gulp.src([paths.sass])
.pipe(sourcemaps.init())
.pipe(sass().on('error', function (e) {
reportError(e);
this.emit('end');
}))
Beachten Sie die Verwendung von this.emit ('Ende'). Funktioniert prima, wenn ich eine nicht Pfeil Funktion zu verwenden, aber die zweite ich tun:
gulp.src([paths.sass])
.pipe(sourcemaps.init())
.pipe(sass().on('error', (e) => {
reportError(e);
this.emit('end');
}))
this.emit('end')
ist nicht mehr verfügbar. Wie könnte ich diese Funktion mit einem Pfeil Funktion schreiben und die this.emit()
Sie können nicht, Pfeilfunktionen haben kein 'this'. – elclanrs
Arrow-Funktionen sind an ihren umgebenden Kontext gebunden - wie 'function (e) {} .bind (this)'. Diese Bindung kann nicht rückgängig gemacht oder nachträglich geändert werden. –
Willkommen bei 'this' sucks – naomik