Bagaimana untuk menjalankan pelbagai Janji yang diberikan secara berterusan dalam JavaScript?

PHPz
Lepaskan: 2023-09-24 13:25:02
ke hadapan
723 orang telah melayarinya

如何在 JavaScript 中连续运行给定的 Promise 数组?

Dalam JavaScript, terdapat kaedah yang dipanggil "Promise.all" yang membolehkan anda menjalankan satu siri Janji secara selari. Walau bagaimanapun, mungkin ada kalanya anda ingin terus memenuhi komitmen anda. Ini berguna jika anda ingin memastikan bahawa setiap Janji dilaksanakan mengikut turutan, atau jika anda perlu menggunakan hasil satu Janji apabila melaksanakan Janji seterusnya.

Terdapat beberapa cara berbeza anda boleh menjalankan satu siri Janji berturut-turut dalam JavaScript. Dalam artikel ini, kami akan memperkenalkan beberapa daripada mereka.

Promise.prototype.then()

Salah satu cara untuk menjalankan tatasusunan Promise dalam siri ialah merantainya bersama-sama menggunakan kaedah then(). Kaedah ini menerima sebagai input fungsi yang akan dilaksanakan selepas Janji selesai.

Contoh

<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result1"></div>
   <div id="result2"></div>
   <div id="result3"></div>
   <script>
      Promise.resolve(1) .then(result => {
         document.getElementById("result1").innerHTML = result
         return Promise.resolve(2);
      }) .then(result => {
          document.getElementById("result2").innerHTML = result
         return Promise.resolve(3);
      }) .then(result => {
          document.getElementById("result3").innerHTML = result
      });  
   </script>
</body>
</html>
Salin selepas log masuk

Seperti yang anda lihat, kami merangkai tiga Janji bersama menggunakan kaedah then(). Janji pertama diselesaikan kepada nilai 1 dan memaparkan nilai itu. Janji kedua diselesaikan kepada nilai 2, yang juga dipaparkan. Akhir sekali, Janji ketiga menyelesaikan kepada nilai 3 dan memaparkan nilai itu.

Oleh kerana kaedah "kemudian" mengembalikan Janji, kita boleh rantai Janji bersama-sama dengan cara ini untuk mencipta satu siri.

untuk-menunggu-menunggu

Cara lain untuk menjalankan tatasusunan Janji dalam siri ialah menggunakan gelung "untuk-menunggu". Gelung ini membolehkan anda menggunakan kata kunci tunggu di dalam gelung untuk. Kata kunci tunggu menjeda pelaksanaan kod sehingga janji dipenuhi.

Contoh

Berikut ialah contoh -

<html>
<head>
   <title>Example- for-await-of</title>
</head>
<body>
   <script>
      async function runPromisesInSeries() {
         for await (const promise of [
            Promise.resolve(1),
            Promise.resolve(2),
            Promise.resolve(3),
         ]) {
               const result = await promise;
               document.write(result);
               document.write("<br>")
            }
         }
      runPromisesInSeries();
   </script>
</body>
</html>
Salin selepas log masuk

Dalam contoh ini kita mempunyai fungsi tak segerak yang mengandungi gelung "untuk-menunggu". Gelung ini berulang melalui satu siri Janji. Untuk setiap janji dalam tatasusunan, kami menunggu janji itu ditunaikan. Setelah Janji dipenuhi, nilainya dipaparkan.

Menggunakan Perpustakaan

Jika anda memerlukan lebih banyak fungsi daripada yang disediakan oleh Promise API asli, anda boleh menggunakan perpustakaan seperti Bluebird atau S: Perpustakaan ini menyediakan kaedah tambahan untuk bekerja dengan Promise.

Sebagai contoh, Bluebird menyediakan kaedah "peta" yang membolehkan anda memetakan tatasusunan nilai kepada tatasusunan Janji dan kemudian tunggu sehingga semua nilai dipenuhi -

const Promise = require(&#39;bluebird&#39;);

Promise.map([1, 2, 3], x => {
   return Promise.resolve(x * 2);
}).then(results => {
   console.log(results); // [2, 4, 6]
});
Salin selepas log masuk

Kesimpulan

Dalam artikel ini, kami belajar tentang keterkaitan dalam JavaScript Beberapa cara berbeza untuk menjalankan satu siri Janji. Kami telah melihat cara untuk merangkai Janji bersama-sama menggunakan kaedah "kemudian", cara menggunakan gelung "untuk-menunggu" dan cara menggunakan perpustakaan seperti Bluebird atau Q.

Atas ialah kandungan terperinci Bagaimana untuk menjalankan pelbagai Janji yang diberikan secara berterusan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan