MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Promise.prototype.then()

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 ketika Promise dipenuhi. Fungsi ini memiliki satu argumen, value pemenuhan.
onRejected
Function dipangil ketika Promise 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

Lihat juga

Tag Dokumen dan Kontributor

 Kontributor untuk laman ini: rmsubekti
 Terakhir diperbarui oleh: rmsubekti,