Menu
CoddyTech

Promise

Pelajaran 8 dari 9 dalam kursus Bagian Rumit JavaScript Modern (ES6+) di Coddy.

Terkadang kita perlu melakukan beberapa tugas yang mungkin membutuhkan waktu untuk diselesaikan. 

Kode seperti ini tidak dapat ditulis dengan cara sinkron biasa, sehingga disebut tugas Asynchronous atau cukup disebut tugas async.

Promise adalah object Javascript yang memastikan tugas async selesai dan mengembalikan hasilnya, yang bisa berupa keberhasilan atau kegagalan!

Promise dapat memiliki tiga status: 1. Pending (status awal) 2. Fulfilled (mengembalikan hasil) 3. Rejected (mengembalikan error)

let myPromise = new Promise(function(resolve, reject) {

  resolve("Everything is fine"); // callback ini dipanggil jika tugas berhasil
  reject("Error");  // callback ini dipanggil jika tugas gagal
  
});

// Atau dengan fungsi panah
let myPromise2 = new Promise((resolve, reject) => {//code});

di sini myPromise adalah object promise. Callback resolve dipanggil jika promise terpenuhi, sedangkan reject dipanggil jika promise ditolak.

myPromise.then( value => console.log(value)) // Semuanya berjalan baik
		 .catch( error => console.log(error)) // error		

Untuk mengakses nilai hasil jika promise berhasil, kita bisa menggunakan .then( value => // your code ). Jika promise ditolak, kita bisa menggunakan .catch( value => // your code ).

Promise umumnya digunakan dalam tugas async, misalnya saat memanggil API backend (front-end), permintaan database (backend), dan sebagainya.

challenge icon

Tantangan

Sedang

Tulis sebuah fungsi getPromise yang mengembalikan promise yang terpenuhi dengan string yang sama atau ditolak dengan string "Rejected" jika string input adalah "Coddy"

Coba sendiri

function getPromise(s) {
  // Tulis kodemu di sini
}

Semua pelajaran di Bagian Rumit JavaScript Modern (ES6+)

Latihan sendiri: Compiler JavaScript online