JavaScript/Objekte/Promise/withResolvers
Die Methode Promise.withResolvers ist eine Alternative zum Aufruf des Promise-Konstruktors. Sie erzeugt ein neues Promise-Objekt ohne Executor und stellt das Promise sowie die erforderlichen resolve- und reject-Funktionen als Objekt bereit.
Syntax
const promiseData = Promise.withResolvers();
Rückgabe
Das zurückgegebene Objekt enthält drei Eigenschaften:
-
promise - Das erzeugte Promise
-
resolve - die zum Promise passende resolve-Funktion
-
reject - die zum Promise passende reject-Funktion
Die Arbeitsweise der Funktion ist äquivalent zu dieser Ersatz-Implementierung:
let resolve, reject;
const promise = new Promise( (good, bad) => {
resolve = good;
reject = bad;
});
Dieses Muster taucht häufig in Bibliotheken auf (z.B. React oder Vue), weshalb eine Standardlösung beim TC39-Gremium angefragt wurde.[1] Im referenzierten TC39-Vorschlag finden sich noch weitere Argumente für den Bedarf an dieser Funktion.
Für Userland-Code sind die Anwendungsfälle seltener. Jedenfalls ist der Code mit withResolvers prägnanter und man kann die Variablen alle als const deklarieren:
const { promise, resolve, reject } = Promise.withResolvers();
Das Beispiel verwendet Destrukturierung, um die drei zurückgegebenen Werte auf const-Variablen zuzuweisen.
function warte(zeit, ergebnis) {
const { promise, resolve, reject } = Promise.withResolvers();
if (zeit < 0)
reject("Ungültige Wartezeit");
else
setTimeout(resolve, zeit*1000, ergebnis);
}
Siehe auch
Weblinks
- ↑ Github/TC39: [github.com/tc39/proposal-promise-with-resolvers Proposal zur Einführung von withResolvers], abgerufen am 27.08.2026