Method then()
mengembalikan Promise
. Menggunakan dua argumen: fungsi callback untuk kasus sukses dan gagal pada Promise
.
Sintaks
p.then(onFulfilled, onRejected); p.then(function(value) { // fulfillment }, function(reason) { // rejection });
Parameter
onFulfilled
Function
dipanggil ketikaPromise
dipenuhi. Fungsi ini memiliki satu argumen,value pemenuhan
.onRejected
Function
dipangil ketikaPromise
ditolak. fungsi ini memiliki satau argumen, alasan penolakan.
Deskripsi
Kedua method then
dan Promise.prototype.catch()
megembalikan promis, juga dapat dirantaikan — operasi yang disebut composition.
Contoh
Meggunakan method then
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! });
Perantaian
Karena method then
mengembalikan Promise
, anda bisa merantaikan pemanggilan then
.
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 });
Anda juga bisa menggunakan perantaian untuk melaksanakan satu fungsi dengan sebuah Promise berbasis API diatas fungsi lainnya.
function fetch_current_data() { // The fetch() API returns a Promise. This function // exposes a similar API, except the fulfillment // value of this function's Promise has had more // work done on it. return fetch("current-data.json").then((response) => { if (response.headers.get("content-type") != "application/json") { throw new TypeError(); } var j = response.json(); // maybe do something with j return j; // fulfillment value given to user of // fetch_current_data().then() }); }
Spesifikasi
Spesifikasi | Status | Comment |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Promise.prototype.then' in that specification. |
Standard | Initial definition in an ECMA standard. |
ECMAScript 2017 Draft (ECMA-262) The definition of 'Promise.prototype.then' in that specification. |
Draft |
Kompabilitas Browser
Fitur | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Dukungan dasar | 32 | 29.0 (29.0) | No support | 19 | 7.1 |
Fitur | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|
Dukungan dasar | No support | 29.0 (29.0) | No support | No support | 8 | 32 |