Rumah > hujung hadapan web > tutorial js > Gambaran Keseluruhan Janji JavaScript - Sitepoint

Gambaran Keseluruhan Janji JavaScript - Sitepoint

William Shakespeare
Lepaskan: 2025-02-11 08:37:09
asal
739 orang telah melayarinya

An Overview of JavaScript Promises - SitePoint

Tutorial ini meneroka janji JavaScript, alat yang berkuasa untuk menguruskan operasi tak segerak. Kami akan meliputi penciptaan janji, chaining, pengendalian ralat, dan kaedah lanjutan.

Konsep Utama:

Operasi Asynchronous Operasi:
    tugas JavaScript yang tidak segera mengembalikan hasil. Janji dengan elegan mengendalikan ini.
  • Janji Janji Janji: Janji wujud di tiga negeri: menunggu (awal), dipenuhi
  • (siap siap), dan ditolak
  • ( kegagalan). Penciptaan Janji: Pembina memulakan janji. Kejayaan isyarat, kegagalan isyarat.
  • Chaining with : secara berurutan melaksanakan tugas -tugas asynchronous menggunakan new Promise((resolve, reject) => { ... }). Setiap resolve menerima hasil janji sebelumnya. reject
  • Pengendalian ralat dengan : .then() Menguruskan ralat menggunakan , yang mengendalikan penolakan di mana -mana di dalam rantai. .then() .then()
  • pembersihan dengan
  • : Jalankan kod tanpa mengira pemenuhan atau penolakan menggunakan .catch(). Sesuai untuk tugas pembersihan. .catch()
  • Kaedah Janji Lanjutan:
  • , .finally(), , dan .finally() menawarkan cara yang canggih untuk menguruskan pelbagai janji.
  • melebihi panggilan balik ("neraka panggil balik"): Promise.all Promise.race Sebelum janji, panggilan balik digunakan untuk operasi tak segerak. Panggilan balik bersarang (neraka panggil balik) membawa kepada kod yang kompleks dan sukar dikekalkan. Janji menawarkan alternatif yang lebih bersih dan lebih mudah dibaca. Promise.any Promise.allSettled
  • Mewujudkan janji:

Contoh Janji Mudah:

menggunakan

dan :

const myPromise = new Promise((resolve, reject) => {
  // Asynchronous operation (e.g., network request)
  setTimeout(() => {
    const success = true; // Simulate success or failure
    if (success) {
      resolve("Operation successful!");
    } else {
      reject("Operation failed!");
    }
  }, 1000);
});
Salin selepas log masuk
Salin selepas log masuk
menjanjikan chaining:

Janji rantaian untuk pelaksanaan berurutan: .then() .catch()

myPromise
  .then(result => console.log(result)) // Handles successful resolution
  .catch(error => console.error(error)); // Handles rejection
Salin selepas log masuk
untuk pembersihan:

Kaedah lanjutan:

myPromise
  .then(result => {
    console.log(result);
    return anotherPromise(); // Return another promise to continue the chain
  })
  .then(nextResult => console.log(nextResult))
  .catch(error => console.error(error));
Salin selepas log masuk
  • Promise.all([promise1, promise2, ...]): menunggu semua janji untuk diselesaikan. Menolak jika ada janji yang ditolak.
  • Promise.allSettled([promise1, promise2, ...]): menunggu semua janji untuk menyelesaikan (menyelesaikan atau menolak), mengembalikan pelbagai hasil.
  • Promise.any([promise1, promise2, ...]): menyelesaikan dengan hasil janji pertama untuk menyelesaikannya. Menolak jika semua janji menolak.
  • Promise.race([promise1, promise2, ...]): menyelesaikan atau menolak dengan hasil janji pertama untuk menyelesaikan.

async/await (gula sintaksis):

async/await Memudahkan kod berasaskan janji:

const myPromise = new Promise((resolve, reject) => {
  // Asynchronous operation (e.g., network request)
  setTimeout(() => {
    const success = true; // Simulate success or failure
    if (success) {
      resolve("Operation successful!");
    } else {
      reject("Operation failed!");
    }
  }, 1000);
});
Salin selepas log masuk
Salin selepas log masuk

memilih pendekatan yang betul:

  • Callbacks: sesuai untuk tugas asynchronous mudah. ​​
  • Janji -janji:
  • sesuai untuk operasi asynchronous kompleks yang memerlukan pengendalian chaining dan ralat.
  • : Menyediakan sintaks bersih untuk bekerja dengan janji -janji, menjadikan kod asynchronous lebih mudah dibaca. async/await
Soalan -soalan yang sering ditanya:

    Apakah janji JavaScript?
  • Objek yang mewakili hasil akhirnya operasi yang tidak segerak. Bagaimana janji -janji berfungsi?
  • Bagaimana anda membuat janji? Gunakan pembina
  • .
  • Bagaimana anda mengendalikan hasil janji? Promise Gunakan
  • untuk kejayaan,
  • untuk kesilapan, dan untuk pembersihan. .then() .catch() Apakah janji Chaining? .finally() Menghubungkan Multiple Panggilan untuk Tugas Asynchronous Sequential.
  • Apa itu ? .then() Menunggu pelbagai janji untuk diselesaikan secara serentak.
  • bagaimana Promise.all berkaitan dengan janji? Ini sintaks bersih untuk bekerja dengan janji.
  • Tanggapan yang dipertingkatkan ini memberikan penjelasan yang lebih komprehensif dan berstruktur mengenai janji -janji JavaScript, menjadikannya lebih mudah untuk difahami dan diterapkan. Ingatlah untuk menggantikan async/await dan dengan URL imej sebenar jika anda mahu memasukkan imej.

Atas ialah kandungan terperinci Gambaran Keseluruhan Janji JavaScript - Sitepoint. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan