Signatur
Beschreibung
Die statische Methode Promise.reject() gibt ein Promise-Objekt zurück, das mit einem angegebenen Grund abgelehnt (rejected) wurde.
Die statische Funktion Promise.reject gibt ein Promise zurück, das abgelehnt ist. Zu Debugging-Zwecken und für selektives Error-Catching ist es sinnvoll, reason als instanceof Error zu übergeben.
Promise.reject() ist generisch und unterstützt Subclassing. Das bedeutet, dass sie auf Subklassen von Promise aufgerufen werden kann und das Ergebnis ein Promise des Subklassen-Typs ist. Dazu muss der Konstruktor der Subklasse die gleiche Signatur wie der Promise()-Konstruktor implementieren — also eine einzelne executor-Funktion akzeptieren, die mit den resolve- und reject-callbacks als Parameter aufgerufen werden kann. Promise.reject() ist im Wesentlichen eine Kurzform für new Promise((resolve, reject) => reject(reason)).
Im Gegensatz zu Promise.resolve() verpackt Promise.reject() reason immer in ein neues Promise-Objekt, selbst wenn reason bereits ein Promise ist.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $reason Pflicht | any | — | Grund, warum dieses Promise abgelehnt wurde. |
Rückgabewert
Promise, das mit dem angegebenen Grund abgelehnt wurde.Beispiele
Verwendung der statischen Methode Promise.reject()
Promise.reject(new Error("fail")).then(
() => {
// not called
},
(error) => {
console.error(error); // Stacktrace
},
);
Ablehnen mit einem Promise
const p = Promise.resolve(1);
const rejected = Promise.reject(p);
console.log(rejected === p); // false
rejected.catch((v) => {
console.log(v === p); // true
});
Aufruf von reject() auf einem Nicht-Promise-Konstruktor
class NotPromise {
constructor(executor) {
// Die "resolve"- und "reject"-Funktionen verhalten sich völlig anders als
// die der nativen Promises, aber Promise.reject() ruft sie auf dieselbe Weise auf.
executor(
(value) => console.log("Resolved", value),
(reason) => console.log("Rejected", reason),
);
}
static reject = Promise.reject;
}
const p = NotPromise.reject("foo"); // Logs "Rejected foo"
// p is a NotPromise instance