Tach!
Kann ich den Code problemlos so umschreiben, dass er ohne finally() funktioniert?
Ein finally wird aufgerufen, egal ob Erfolg oder Misserfolg eintrat. Das heißt, wenn du den Code vom finally in beiden Fällen ausführst, ist das ein gleichwertiger Ersatz dafür.
.then(this.onSubmitSucess.bind(this)) .catch(this.onSubmitError.bind(this)) .finally(() => { this.elements.submitButton.classList.remove( 'o-stock-subscription-form__submit-button--loading' ); });
Du musst hier aber auch den Inhalt von then und catch umschreiben, denn da wird jetzt nur eine Funktionsreferenz übergeben, und da kannst du dich nicht so richtig dranhängen. Wenn ich mich jetzt nicht generell vertan habe, müsste das so laufen:
.then(() => {
this.onSubmitSucess();
this.elements.submitButton.classList.remove(
'o-stock-subscription-form__submit-button--loading'
);
})
.catch(() => {
this.onSubmitError();
this.elements.submitButton.classList.remove(
'o-stock-subscription-form__submit-button--loading'
);
});
Das bind() fällt weg, das soll nur das aktuelle this reservieren, für die Zeit wenn der Callback erfolgt. Aber so eine Fat-Arrow-Funktionsdefinition () => {}
reserviert das this nebenbei mit.
dedlfix.