Rumah >hujung hadapan web >tutorial js >Bagaimanakah saya boleh menyelaraskan Panggilan Asynchronous dalam JavaScript menggunakan `async/wait`?

Bagaimanakah saya boleh menyelaraskan Panggilan Asynchronous dalam JavaScript menggunakan `async/wait`?

Barbara Streisand
Barbara Streisandasal
2024-11-27 17:28:14266semak imbas

How Can I Parallelize Asynchronous Calls in JavaScript using `async/await`?

Menyelaraskan Panggilan Asynchronous dengan menunggu

Apabila menggunakan sintaks async/wait yang diperkenalkan dalam ES7, adalah penting untuk memahami bahawa berbilang kenyataan menunggu akan dilaksanakan secara berurutan dan bukannya selari. Ini bermakna bahawa menunggu keputusan dalam satu panggilan fungsi akan menggantung pelaksanaan sehingga panggilan sebelumnya selesai. Untuk mengelakkan ini, terdapat beberapa pilihan.

Salah satu kaedah paling mudah dalam Node.js ialah memanfaatkan fungsi Promise.all(). Promise.all() membolehkan anda mencipta satu janji yang menyelesaikan apabila semua janji yang dibekalkan menyelesaikan atau menolak apabila mana-mana janji itu menolak. Dengan menghantar pelbagai janji kepada Promise.all(), anda boleh memastikan bahawa kesemuanya berjalan serentak.

Berikut ialah contoh:

const someCall = () => new Promise((resolve) => setTimeout(() => resolve("some value"), 100));
const anotherCall = () => new Promise((resolve) => setTimeout(() => resolve("another value"), 200));

await Promise.all([someCall(), anotherCall()])
  .then((results) => {
    const [someResult, anotherResult] = results;
    // Do something with the results.
  });

Dalam contoh ini, kedua-duanya someCall() dan anotherCall() akan dilaksanakan secara selari, dan hasilnya akan tersedia dalam tatasusunan keputusan.

Pendekatan alternatif ialah menggunakan perpustakaan async, yang menyediakan ciri tambahan untuk operasi tak segerak. Fungsi async.parallel() membolehkan anda menentukan tatasusunan fungsi untuk dijalankan secara selari dan panggilan balik untuk digunakan sebaik sahaja semua fungsi selesai.

Berikut ialah contoh menggunakan async.parallel():

const async = require("async");

const someCall = (callback) => setTimeout(() => callback(null, "some value"), 100);
const anotherCall = (callback) => setTimeout(() => callback(null, "another value"), 200);

async.parallel([someCall, anotherCall], (err, results) => {
  if (err) {
    // Handle any errors.
  } else {
    const [someResult, anotherResult] = results;
    // Do something with the results.
  }
});

Kedua-dua Promise.all() dan async.parallel() menawarkan kaedah yang boleh dipercayai untuk melaksanakan asynchronous berfungsi secara selari. Pilih pendekatan yang paling sesuai dengan keperluan dan keutamaan projek anda.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menyelaraskan Panggilan Asynchronous dalam JavaScript menggunakan `async/wait`?. 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