Serentak Melaksanakan Operasi Tatasusunan Menggunakan Async/Await
Dalam set data tertentu, pemprosesan selari boleh meningkatkan prestasi dengan ketara. Dengan memanfaatkan sintaks async/menunggu JavaScript, kami boleh melaksanakan operasi tatasusunan secara serentak dengan cekap. Walau bagaimanapun, menyepadukan pendekatan ini dengan Array.map boleh memberikan beberapa cabaran.
Memahami Isu
Pertimbangkan kod di bawah:
var arr = [1,2,3,4,5]; var results: number[] = await arr.map(async (item): Promise<number> => { await callAsynchronousOperation(item); return item + 1; });
An ralat ditemui di sini: "Taip 'Janji
Menyelesaikan Isu
Untuk menyelesaikannya, kita perlu menukar susunan janji menjadi satu Janji sebelum cuba menunggunya. Ini boleh dicapai menggunakan Promise.all:
var results: number[] = await Promise.all(arr.map(async (item): Promise<number> => { await callAsynchronousOperation(item); return item + 1; }));
Dengan menggunakan Promise.all pada tatasusunan yang dipetakan, kami mencipta Promise tunggal yang mewakili penyiapan semua operasi tak segerak dalam fungsi peta. Ini membenarkan pengendali async/wait untuk mengendalikan hasil dengan betul dan mengembalikan tatasusunan nilai.
Kesimpulan
Mengintegrasikan async/wait dengan Array.map memerlukan pengendalian yang teliti bagi Janji objek. Dengan memahami gelagat asas menunggu dan memanfaatkan utiliti Promise.all, pembangun boleh melaksanakan operasi serentak pada tatasusunan dengan berkesan. Pendekatan ini membuka kemungkinan baharu untuk pemprosesan data yang cekap dan pengoptimuman prestasi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Async/Await dengan Array.map untuk Operasi Array Serentak dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!