Dieser Artikel benötigt eine technische Überprüfung. So können Sie helfen.
Dieser Artikel benötigt eine redaktionelle Überprüfung. So können Sie helfen.
This is a new technology, part of the ECMAScript 2015 (ES6) standard.
This technology's specification has been finalized, but check the compatibility table for usage and implementation status in various browsers.
Promise
-Objekt zurück. Sie benötigt zwei Argumente, jeweils eine Callback-Funktion für den Erfolg und den Fehlschlag des Promise
.Syntax
p.then(onFulfilled, onRejected); p.then(function(value) { // fulfillment }, function(reason) { // rejection });
Parameter
- onFulfilled
- Eine
Function
, welche aufgerufen wird, wenn derPromise
erfüllt wurde. Die Funktion hat ein Argument, den Rückgabewertvalue
. - onRejected
- Eine
Function
, welche aufgerufen wird, wenn derPromise
fehlschlägt. Die Funktion hat ein Argument, den Grund für den Fehlschlag:reason
.
Beschreibung
Die then
- und Promise.prototype.catch()
-Methoden, können, da sie Promises zurückgeben, verkettetet werden — ein Vorgehen, das composition genannt wird.
Beispiele
Benutzen der then
-Methode
var p1 = new Promise(function(resolve, reject) { resolve("Success!"); // or // reject ("Error!"); }); p1.then(function(value) { console.log(value); // Success! }, function(reason) { console.log(reason); // Error! });
Verketten
Da die then
-Methode einen Promise
zurückliefert, können then
-Aufrufe leicht verkettet werden.
var p2 = new Promise(function(resolve, reject) { resolve(1); }); p2.then(function(value) { console.log(value); // 1 return value + 1; }).then(function(value) { console.log(value); // 2 }); p2.then(function(value) { console.log(value); // 1 });
Spezifikationen
Spezifikation | Status | Kommentar |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) Die Definition von 'Promise.prototype.then' in dieser Spezifikation. |
Standard | Initiale Definition in einem ECMAScript-Standard. |
Browserkompatibilität
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 32 | 29.0 (29.0) [1] | Nicht unterstützt | 19 | 7.1 |
Feature | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|
Basic support | Nicht unterstützt | 29.0 (29.0) [1] | Nicht unterstützt | Nicht unterstützt | 8 | 32 |
[1] Gecko 24 besitzt, unter dem Namen Future, eine experimentielle Implementation von Promise. In Gecko 25 wurde der Name final festgelegt aber standardmäßig durch die Einstellung dom.promise.enabled
deaktiviert. Durch Bug 918806 wurden Promises in Gecko 29 standardmäßig aktiviert.