⊗jsSpPrmEx 163 of 294 menu

Situasi Pengecualian dalam Janji (Promise) di JavaScript

Sekarang mari kita belajar mengendalikan situasi pengecualian yang berlaku di dalam janji. Sekiranya berlaku situasi sedemikian, kita harus menolak janji tersebut menggunakan fungsi penolakan khas, yang secara automatik dimasukkan ke dalam parameter kedua fungsi janji:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { ... }, 3000); });

Di dalam fungsi janji, kita harus memanggil resolve jika semuanya berjalan normal, atau reject jika berlaku situasi pengecualian:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { let isError = false; if (!isError) { resolve([1, 2, 3, 4, 5]); // data janji } else { reject('error in promise'); // teks ralat anda } }, 3000); });

Kemudian, dalam kaedah then, anda harus menyampaikan bukan satu, tetapi dua fungsi sebagai parameter: fungsi pertama akan berfungsi jika janji berjaya dilaksanakan (resolved), manakala fungsi kedua - jika berlaku ralat (rejected):

promise.then( function(result) { console.log(result); // akan memaparkan hasil janji }, function(error) { console.log(error); // akan memaparkan teks ralat } );

Biasanya, kod di atas ditulis dengan lebih ringkas, seperti ini:

promise.then(function(result) { console.log(result); // akan memaparkan hasil janji }, function(error) { console.log(error); // akan memaparkan teks ralat });

Buat kod tak segerak yang akan menjana nombor rawak dari 0 hingga 5. Bungkuskan semuanya ini dalam janji. Biarkan janji tersebut dengan hasilnya mengembalikan hasil pembahagian satu dengan nombor yang dijana. Biarkan janji tersebut dilaksanakan dengan ralat, jika berlaku pembahagian dengan sifar, dan dengan kejayaan dalam semua kes lain.

Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak