Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Promise.reject()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
Die statische MethodePromise.reject() gibt einPromise-Objekt zurück, das mit einem angegebenen Grund abgelehnt wird.
In diesem Artikel
Probieren Sie es aus
function resolved(result) { console.log("Resolved");}function rejected(result) { console.error(result);}Promise.reject(new Error("fail")).then(resolved, rejected);// Expected output: Error: failSyntax
Promise.reject(reason)Parameter
reasonGrund, warum dieses
Promiseabgelehnt wurde.
Rückgabewert
EinPromise, das mit dem angegebenen Grund abgelehnt wird.
Beschreibung
Die statische FunktionPromise.reject gibt einPromise zurück, das abgelehnt wird. Für Debugging-Zwecke und selektives Fehlerfangen ist es nützlich,reason alsinstanceofError zu gestalten.
Promise.reject() ist generisch und unterstützt Subclassing, was bedeutet, dass es auf Unterklassen vonPromise aufgerufen werden kann, und das Ergebnis wird ein Promise des Unterklasstyps sein. Dazu muss der Konstruktor der Unterklasse dieselbe Signatur wie derPromise()-Konstruktor implementieren — indem sie eine einzelneexecutor-Funktion akzeptiert, die mit denresolve undreject Rückrufen als Parameter aufgerufen werden kann.Promise.reject() ist im Wesentlichen eine Kurzform fürnew Promise((resolve, reject) => reject(reason)).
Im Gegensatz zuPromise.resolve() verpacktPromise.reject() denreason immer in einem neuenPromise-Objekt, selbst wennreason bereits einPromise ist.
Beispiele
>Verwendung der statischen Methode Promise.reject()
Promise.reject(new Error("fail")).then( () => { // not called }, (error) => { console.error(error); // Stacktrace },);Dem Ablehnen mit einem Promise
Im Gegensatz zuPromise.resolve verwendet diePromise.reject Methode keine bestehendenPromise-Instanzen erneut. Sie gibt immer eine neuePromise-Instanz zurück, diereason umschließt.
const p = Promise.resolve(1);const rejected = Promise.reject(p);console.log(rejected === p); // falserejected.catch((v) => { console.log(v === p); // true});Aufruf von reject() bei einem Konstruktor, der kein Promise ist
Promise.reject() ist eine generische Methode. Sie kann auf jedem Konstruktor aufgerufen werden, der dieselbe Signatur wie derPromise()-Konstruktor implementiert. Zum Beispiel können wir sie auf einem Konstruktor aufrufen, derconsole.log alsreject übergibt:
class NotPromise { constructor(executor) { // The "resolve" and "reject" functions behave nothing like the // native promise's, but Promise.reject() calls them in the same way. executor( (value) => console.log("Resolved", value), (reason) => console.log("Rejected", reason), ); }}Promise.reject.call(NotPromise, "foo"); // Logs "Rejected foo"Spezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-promise.reject> |