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.
Tantangan
SedangTulis 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+)
2Ayo menyelam lebih dalam
Cakupan blok: let & constFungsi panahSpread dan Restfor - of loopClassPromiseAsync & AwaitLatihan sendiri: Compiler JavaScript online