Versprechen werden in vielen Facetten von JS verwendet, eckig ist ein kleines Beispiel. Lange Rede kurzer Sinn, Promises sind .then
fähige Objekte. Wenn Sie zum Beispiel mit xhr (XMLHttpRequest
) gearbeitet haben, können Sie sich die .then(x)
ähnlich wie die xhr.onload = x
vorstellen, aber dieses Konstrukt ermöglicht viel leistungsfähigeren Code. Diese beiden Teile des Codes Akt in sehr viel die gleiche Weise:
// callback "format"
const xhr = new XMLHttpRequest;
xhr.open('GET', '/api/some-query');
xhr.onload =() => { console.log(xhr.response); };
xhr.send();
// promise "format"
const xhrPromise = new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest;
xhr.open('GET', '/api/some-query');
// bad error handling, but proves the point
xhr.onload =() => { resolve(xhr.response); };
xhr.send();
});
xhrPromise.then((text) => { console.log(text); });
Was haben Sie da oben ist das Versprechen Muster. Um es einfacher zu verstehen, ist hier ein ähnliches Stück die Callback-Muster mit:
setTimeout(() => { f('stable') }, 2000);
dies vorausgesetzt, Sie dies mit Ihrem aktuellen Code anhängen:
appStatus.then((status) => { f(status) });
Wie dies viel besser sein kann, kann nicht sein zunächst klar, aber wenn man in sie eintauchen und entdecken, dass Versprechungen verkettbar sind (appStatus.then(...).then(...)
), wie die Fehlerbehandlung mit .catch
und ähnliche funktioniert, ist es leicht, mit ihnen, sich zu verlieben
es gibt viele gut liest unter stehen, wie Versprechungen arbeiten, wie the MDN docs und this post by Jake Archibald
https://stackoverflow.com/documentation/javascript/231/promises#t=201709220936053925196 – Navin
Eine weitere gute Quelle für eine lesen https://developers.google.com/web/Fundamentals/Erste Schritte/Primer/Versprechen – Adriani6
appStatus.then ((val) => console.log (val)); // würde dir nach zwei Sekunden "stabil" geben –