Fahami Promise dalam Javascript

<Tutorial >

Apa itu synchronous & asynchronous?

Synchronous itu adalah satu peristiwa atau situasi yang berlaku pada waktu yang sama mengikut turutan. Maksudnya disini. Semasa berlakunya operasi A, operasi B tidak boleh berlaku selagi operasi A tidak lengkap. Begitu juga operasi C tidak boleh belaku selagi operasi B telah bermula dan telah melengkapkan operasinya.

Asynchronous pula adalah dimana 2 atau lebih peristiwa berlaku pada waktu yang sama tetapi tidak kepada status operasi peristiwa lain yang belaku pada waktu yang sama. Maksudnya disini. Semasa berlakunya operasi A, operasi B BOLEH bermula tanpa perlu menunggu operasi A lengkap. Begitu juga operasi C. Operasi C tidak perlu menuggu operasi A atau pun operasi B lengkap untuk ia bermula.

Contoh operasi penjualan capati secara sync dan juga async.

Synchronous Capati Stall

Setiap pembeli perlu menunggu orang yang membeli sebelum mereka mendapat capati mereka terlebih dahulu

Asynchronous Capati Stall

Pembeli tak perlu menunggu siapa di hadapan mereka, kalau capati mereka siap dimasak terlebih dahulu, mereka akan mendapatkanya terlebih awal

Apa itu Promise?

Apa tu promise? Dalam bahasa melayunya janji. Ya promise dalam javascript sama juga dengan promise dalam real life. Contoh aku janji aku nak buat blog post baru kat blog ni. Dalam janji biasanya akan ada 2 result kan? Janji ditepati & juga janji dicapati.haha Kalau aku berjaya publish blog yang aku sedang tulis ni, jadi janji ditepati tapi kalau aku tak publish pun maknanya janji aku dah dicapatikan lah . Macam tu juga promise dalam javascript, ada 2 result, resolve & reject. Dalam javascript, promise mengandugi 3 state:

  • Pending – State permulaan. Pada saat ini janji tidak lagi dapat ditentukan sama ada ditepati atau dicapatikan.
  • Fullfilled/resolved. State ini adalah dimana janji telah ditepati. Operasi perjanjian selesai dengan berjayanya.
  • rejected. State ini bermakna operasi perjanjian yang telah dibuat telah dicapatikan.
Diagram flow promise / perjanjian ditepati atau dicapati
let janji = new Promise((resolve, reject) => {
    // Buat sesuatu yang berfaedah
    let published = true;
    if(published){
        resolve('ditepati');
    }else {
        reject('dicapati');
    }
});
// Guna promise dalam js
janji
    .then((mesej) => console.log('Janji telah ' + mesej)) // klu resolve
    .catch((mesej) => console.log('Janji telah ' + mesej)); // kalau reject


Bersambung….

Belanja saya kopi

Artikel lain

Fahami React Context API

Sebagai developer reactjs yang baharu macam aku, aku selalu gunakan teknik prop drilling untuk pass prop ke child component yang aku buat. Cara ini tak bagus kalau projek kita itu adalah projek yang besar. Aku tahu mengenai kewujudan react context API atau state management library lain seperti redux, mobx, recoil dan banyak lagi library untuk… Continue reading Fahami React Context API

Asas Node.js – Built-in module

Dalam Node.js terdapat tidaklah terlalu banyak built-in module. Tapi aku tak akan bincangkan kesemua module tersebut. Aku hanya akan bincangkan beberapa built-in module yang agak penting & digunakan agak kerap ketika pembangunan aplikasi node.js. Antaranya adalah: Path module OS module File System Module Events Module HTTP Module Path module Digunakan untuk handle file path. Contohnya… Continue reading Asas Node.js – Built-in module