Rumah  >  Artikel  >  hujung hadapan web  >  Kepentingan Janji di tempat kerja

Kepentingan Janji di tempat kerja

WBOY
WBOYasal
2024-02-18 09:53:05697semak imbas

Kepentingan Janji di tempat kerja

Kuasa janji: Penerapan Janji dalam senario kerja

Pengenalan:
Dalam kerja harian, kita sering menghadapi situasi di mana kita perlu mengendalikan tugas tak segerak, seperti menghantar permintaan rangkaian, membaca pangkalan data, dsb. Kaedah fungsi panggil balik tradisional sering membawa kepada struktur kod yang kompleks, kebolehbacaan yang lemah, dan terdedah kepada neraka panggilan balik. Untuk menyelesaikan masalah ini, Janji wujud. Dalam artikel ini, kami akan meneroka aplikasi Promise dalam senario kerja dan menyediakan contoh kod untuk membantu pembaca memahami dengan lebih baik.

Apa itu Janji?
Promise ialah spesifikasi untuk mengendalikan operasi tak segerak. Ia menyediakan cara yang ringkas dan berkuasa untuk mengurus fungsi panggil balik, membolehkan kami mengendalikan tugas tak segerak. Janji mempunyai tiga keadaan: belum selesai (sedang berjalan), dipenuhi (berjaya) dan ditolak (gagal). Apabila tugas tak segerak dilaksanakan, Janji akan menukar status kepada dipenuhi atau ditolak berdasarkan hasil tugasan.

Penggunaan asas Promise:
Sebelum memulakan aplikasi khusus, mari kita fahami penggunaan asas Promise.

  1. Buat Janji:
    Pertama, kita perlu mencipta objek Promise dan merangkum logik melaksanakan tugas tak segerak di dalam objek.

    const promise = new Promise((resolve, reject) => {
      // 异步任务执行代码
      if (异步任务成功) {
     resolve(结果);
      } else {
     reject(错误信息);
      }
    });

    Dalam kod di atas, pembina Promise menerima fungsi sebagai parameter Fungsi ini mempunyai dua parameter, selesaikan dan tolak, yang masing-masing mewakili fungsi panggil balik untuk kejayaan dan kegagalan tugas tak segerak.

  2. Mengendalikan keputusan tugas tak segerak:
    Promise object menyediakan kaedah kemudian untuk mengendalikan hasil tugas tak segerak.

    promise.then((result) => {
      // 处理异步任务成功的逻辑
    }).catch((error) => {
      // 处理异步任务失败的逻辑
    });

    Dalam kod di atas, kami menggunakan kaedah kemudian untuk mendaftarkan fungsi panggil balik kejayaan dan kaedah tangkapan untuk mendaftarkan fungsi panggil balik kegagalan.

  3. Mengendalikan berbilang tugas tak segerak:
    Kadangkala kita perlu memproses berbilang tugas tak segerak dan mendapatkan keputusannya Dalam kes ini, kita boleh menggunakan kaedah Promise.all untuk mengendalikannya.

    Promise.all([promise1, promise2, promise3])
      .then((results) => {
     // 处理所有异步任务成功的逻辑
      })
      .catch((error) => {
     // 处理异步任务失败的逻辑
      });

    Dalam kod di atas, jika semua tugas asynchronous berjaya, kaedah kemudian dilaksanakan; jika mana-mana tugas asynchronous gagal, kaedah tangkapan akan dilaksanakan.

Aplikasi khusus:
Sekarang mari kita lihat aplikasi khusus Promise dalam senario kerja.

  1. Hantar permintaan AJAX:
    Dalam pembangunan web, kami selalunya perlu menghantar permintaan AJAX untuk mendapatkan data hujung belakang. Menggunakan Promise, anda boleh merangkum permintaan AJAX ke dalam fungsi boleh guna semula, elakkan menulis fungsi panggil balik berulang kali dan menjadikan kod lebih mudah dibaca.

    function ajax(url) {
      return new Promise((resolve, reject) => {
     const xhr = new XMLHttpRequest();
     xhr.open('GET', url);
     xhr.onreadystatechange = () => {
       if (xhr.readyState === 4) {
         if (xhr.status === 200) {
           resolve(xhr.responseText);
         } else {
           reject(new Error(xhr.statusText));
         }
       }
     };
     xhr.onerror = () => {
       reject(new Error('AJAX请求出错'));
     };
     xhr.send();
      });
    }
    
    ajax('https://api.example.com/data')
      .then((response) => {
     // 处理异步请求成功的逻辑
      })
      .catch((error) => {
     // 处理异步请求失败的逻辑
      });
  2. Mengendalikan tugas serentak:
    Kadangkala kita perlu mengendalikan berbilang tugas tak segerak pada masa yang sama dan melakukan operasi tertentu selepas semua tugasan selesai. Kaedah Promise.all boleh membantu kami mencapai fungsi ini. . Artikel ini memperkenalkan penggunaan asas dan aplikasi khusus Promise, dengan harapan pembaca dapat memahami kuasa Promise dan menggunakannya secara fleksibel dalam kerja mereka untuk meningkatkan kecekapan pembangunan dan kualiti kod.

Atas ialah kandungan terperinci Kepentingan Janji di tempat kerja. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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