Rumah hujung hadapan web tutorial js 解决for循环中异步请求顺序不一致的问题

解决for循环中异步请求顺序不一致的问题

Dec 17, 2019 pm 04:56 PM
for Permintaan tak segerak

解决for循环中异步请求顺序不一致的问题

解决for循环中异步请求顺序不一致的问题

工作中遇到一个问题

for循环,再把循环出来的ID再进行二次请求

这就导致一个问题

请求结果返回顺序不一致

原因:异步请求会把回调事件放入微任务事件队列,宏任务执行完毕再执行微任务,具体参考事件队列机制

 【相关课程推荐:JavaScript视频教程】  

解决方法:

通过map方法进行循环请求

将异步请求方法封装起来,返回一个promise

这样将会返回一个具有多个promise的数组

通过promise.all()方法把promise包装成一个新的promise实例

// 通过Promise把所有的异步请求放进事件队列中
getInfo(item ,index) {
    const ms = 1000 * Math.ceil(Math.random() * 3)
    return new Promise((resolve,reject) => {
        setTimeout(() => {
           axios.get(id).then((result) => {
               resolve(result)
           })
        }, ms)
    })
}

// 返回多个promise
let promise = arr.map((item,index) = > {
    arr.forEach((item, index) => {
        return getInfo(item, index)
    })
})
// 对返回的promise数组进行操作
Peomise.all(promise).then((allData) => {
    arr.forEach((item, index) => {
        // ......
    })
})
Salin selepas log masuk

本文来自 js教程 栏目,欢迎学习!  

Atas ialah kandungan terperinci 解决for循环中异步请求顺序不一致的问题. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

17 cara untuk menyelesaikan skrin biru kernel_security_check_failure 17 cara untuk menyelesaikan skrin biru kernel_security_check_failure Feb 12, 2024 pm 08:51 PM

Kernelsecuritycheckfailure (kegagalan pemeriksaan kernel) adalah jenis kod henti yang agak biasa Walau bagaimanapun, tidak kira apa sebabnya, ralat skrin biru menyebabkan ramai pengguna merasa tertekan dengan berhati-hati. 17 penyelesaian kepada skrin biru kernel_security_check_failure Kaedah 1: Alih keluar semua peranti luaran Apabila mana-mana peranti luaran yang anda gunakan tidak serasi dengan versi Windows anda, ralat skrin biru Kernelsecuritycheckfailure mungkin berlaku. Untuk melakukan ini, anda perlu mencabut semua peranti luaran sebelum cuba memulakan semula komputer anda.

Cara mengendalikan permintaan selari dan tak segerak dalam pembangunan API backend PHP Cara mengendalikan permintaan selari dan tak segerak dalam pembangunan API backend PHP Jun 17, 2023 pm 04:22 PM

Apabila aplikasi web terus berkembang dan berubah, pengendalian permintaan selari dan tak segerak telah menjadi topik penting dalam pembangunan API bahagian belakang PHP. Dalam aplikasi PHP tradisional, permintaan dilakukan secara serentak, iaitu, permintaan akan menunggu sehingga respons diterima, yang akan menjejaskan kelajuan tindak balas dan prestasi aplikasi. Walau bagaimanapun, PHP kini mempunyai keupayaan untuk memproses permintaan selari dan tak segerak Ciri-ciri ini membolehkan kami mengendalikan sejumlah besar permintaan serentak dan meningkatkan kelajuan tindak balas dan prestasi aplikasi. Artikel ini akan membincangkan cara menangani pembangunan API backend PHP

Bagaimana untuk menyahpasang Skype for Business pada Win10? Bagaimana untuk menyahpasang sepenuhnya Skype pada komputer anda Bagaimana untuk menyahpasang Skype for Business pada Win10? Bagaimana untuk menyahpasang sepenuhnya Skype pada komputer anda Feb 13, 2024 pm 12:30 PM

Bolehkah skype Win10 dinyahpasang? Ini adalah soalan yang ingin diketahui oleh ramai pengguna, kerana ramai pengguna mendapati bahawa aplikasi ini disertakan dalam program lalai pada komputer mereka, dan mereka bimbang bahawa pemadamannya akan menjejaskan operasi sistem tapak web ini membantu pengguna Mari kita lihat dengan lebih dekat cara menyahpasang Skype for Business dalam Win10. Cara menyahpasang Skype for Business dalam Win10 1. Klik ikon Windows pada desktop komputer, dan kemudian klik ikon tetapan untuk masuk. 2. Klik "Guna". 3. Masukkan "Skype" dalam kotak carian dan klik untuk memilih hasil yang ditemui. 4. Klik "Nyahpasang". 5

Selesaikan masalah kemas kini masa nyata data permintaan tak segerak Vue Selesaikan masalah kemas kini masa nyata data permintaan tak segerak Vue Jun 30, 2023 pm 02:31 PM

Bagaimana untuk menyelesaikan masalah kemas kini masa nyata data permintaan tak segerak dalam pembangunan Vue Dengan pembangunan teknologi bahagian hadapan, semakin banyak aplikasi web menggunakan data permintaan tak segerak untuk meningkatkan pengalaman pengguna dan prestasi halaman. Dalam pembangunan Vue, cara menyelesaikan masalah kemas kini masa nyata data permintaan tak segerak adalah cabaran utama. Kemas kini masa nyata bermakna apabila data yang diminta secara tidak segerak berubah, halaman boleh dikemas kini secara automatik untuk memaparkan data terkini. Dalam Vue, terdapat berbilang penyelesaian untuk mencapai kemas kini masa nyata data tak segerak. 1. Mesin responsif menggunakan Vue

Cara menggunakan untuk mencari faktorial n dalam JavaScript Cara menggunakan untuk mencari faktorial n dalam JavaScript Dec 08, 2021 pm 06:04 PM

Cara menggunakan for untuk mencari n faktorial: 1. Gunakan pernyataan "for (var i=1;i<=n;i){}" untuk mengawal julat lintasan gelung kepada "1~n"; badan, gunakan "cj *=i" Darab nombor daripada 1 kepada n, dan tetapkan hasil darab kepada pembolehubah cj 3. Selepas gelung berakhir, nilai pembolehubah cj ialah faktorial bagi n, dan kemudian keluarkannya.

Apakah perbezaan antara foreach dan for loop Apakah perbezaan antara foreach dan for loop Jan 05, 2023 pm 04:26 PM

Perbezaan: 1. untuk gelung melalui setiap elemen data melalui indeks, manakala untukSetiap gelung melalui elemen data tatasusunan melalui program asas JS 2. kerana boleh menamatkan pelaksanaan gelung melalui kata kunci rehat, tetapi untukSetiap tidak boleh; . for boleh mengawal pelaksanaan gelung dengan mengawal nilai pembolehubah gelung, tetapi forEach tidak boleh 4. untuk boleh memanggil pembolehubah gelung di luar gelung, tetapi forEach tidak boleh memanggil pembolehubah gelung di luar gelung 5. Kecekapan pelaksanaan bagi; adalah lebih tinggi daripada untukSetiap.

Penjelasan terperinci tentang menggunakan axios untuk menghantar permintaan tak segerak dalam Vue Penjelasan terperinci tentang menggunakan axios untuk menghantar permintaan tak segerak dalam Vue Jun 09, 2023 pm 04:04 PM

Vue ialah rangka kerja bahagian hadapan yang sangat popular, dan Axios kini merupakan pustaka permintaan tak segerak bahagian hadapan yang popular Artikel ini akan memperkenalkan secara terperinci cara menggunakan Axios untuk menghantar permintaan tak segerak dalam Vue. Pemasangan dan penggunaan Axios Axios ialah klien HTTP berasaskan Promise untuk menghantar permintaan tak segerak. Kita boleh memasangnya melalui npm: npminstallaxios dan kemudian kita boleh menggunakannya dalam Vue, pertama kita perlu mengimportnya dalam komponen: importax

Ralat UniApp: penyelesaian permintaan tak segerak 'xxx' gagal Ralat UniApp: penyelesaian permintaan tak segerak 'xxx' gagal Nov 25, 2023 am 08:59 AM

Ralat UniApp: 'xxx' permintaan tak segerak penyelesaian gagal Dengan perkembangan pesat aplikasi mudah alih, UniApp, sebagai rangka kerja pembangunan merentas platform, semakin digemari oleh pembangun. Walau bagaimanapun, seperti mana-mana rangka kerja teknikal lain, UniApp juga mempunyai beberapa masalah yang berpotensi, salah satunya ialah masalah pelaporan ralat apabila permintaan tak segerak gagal. Artikel ini akan memperkenalkan beberapa sebab biasa mengapa UniApp melaporkan ralat: "permintaan tak segerak 'xxx' gagal" dan menyediakan beberapa penyelesaian. Pertama, kita perlu memahami apa itu permintaan tak segerak. dalam U

See all articles