Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menggunakan Async/Await dengan Array.map untuk Operasi Array Serentak dalam JavaScript?

Bagaimanakah Saya Boleh Menggunakan Async/Await dengan Array.map untuk Operasi Array Serentak dalam JavaScript?

Patricia Arquette
Patricia Arquetteasal
2024-12-15 14:21:15941semak imbas

How Can I Use Async/Await with Array.map for Concurrent Array Operations in JavaScript?

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[]' tidak boleh diberikan untuk menaip 'nombor[]'." Isu ini timbul kerana kami sedang menunggu pelbagai janji dan bukannya satu Janji. Pengendali async/wait menganggap objek bukan Promise sebagai nilai mentahnya, yang membawa kepada ralat yang diperhatikan.

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!

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