Baseline Widely available
Die statische Methode Promise.reject()
gibt ein Promise
-Objekt zurück, das mit einem angegebenen Grund abgelehnt wird.
function resolved(result) {
console.log("Resolved");
}
function rejected(result) {
console.error(result);
}
Promise.reject(new Error("fail")).then(resolved, rejected);
// Expected output: Error: fail
Syntax Parameter
reason
Grund, warum dieses Promise
abgelehnt wurde.
Ein Promise
, das mit dem angegebenen Grund abgelehnt wird.
Die statische Funktion Promise.reject
gibt ein Promise
zurück, das abgelehnt wird. Für Debugging-Zwecke und selektives Fehlerfangen ist es nützlich, reason
als instanceof
Error
zu gestalten.
Promise.reject()
ist generisch und unterstützt Subclassing, was bedeutet, dass es auf Unterklassen von Promise
aufgerufen werden kann, und das Ergebnis wird ein Promise des Unterklasstyps sein. Dazu muss der Konstruktor der Unterklasse dieselbe Signatur wie der Promise()
-Konstruktor implementieren â indem sie eine einzelne executor
-Funktion akzeptiert, die mit den resolve
und reject
Rückrufen 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()
den reason
immer in einem neuen Promise
-Objekt, selbst wenn reason
bereits ein Promise
ist.
Promise.reject(new Error("fail")).then(
() => {
// not called
},
(error) => {
console.error(error); // Stacktrace
},
);
Dem Ablehnen mit einem Promise
Im Gegensatz zu Promise.resolve
verwendet die Promise.reject
Methode keine bestehenden Promise
-Instanzen erneut. Sie gibt immer eine neue Promise
-Instanz zurück, die reason
umschlieÃt.
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() bei einem Konstruktor, der kein Promise ist
Promise.reject()
ist eine generische Methode. Sie kann auf jedem Konstruktor aufgerufen werden, der dieselbe Signatur wie der Promise()
-Konstruktor implementiert. Zum Beispiel können wir sie auf einem Konstruktor aufrufen, der console.log
als reject
ü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 Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4