Maison interface Web js tutoriel Résoudre le problème de l'ordre incohérent des requêtes asynchrones dans la boucle for

Résoudre le problème de l'ordre incohérent des requêtes asynchrones dans la boucle for

Dec 17, 2019 pm 04:56 PM
for 异步请求

Résoudre le problème de l'ordre incohérent des requêtes asynchrones dans la boucle for

Résoudre le problème de l'ordre incohérent des requêtes asynchrones dans la boucle for

J'ai rencontré un problème au travail

Boucle For, puis faites une deuxième demande pour l'ID en boucle

Cela conduit à un problème

L'ordre de retour du résultat de la demande est incohérent

Raison : Asynchrone request will L'événement de rappel est placé dans la file d'attente des événements de la microtâche et la microtâche est exécutée après l'exécution de la macrotâche. Pour plus de détails, veuillez vous référer au mécanisme de file d'attente des événements

[Recommandations de cours associées : Vidéo JavaScript. tutoriel]

Solution :

Faire une requête en boucle via la méthode map

Encapsuler la méthode de requête asynchrone et renvoie une promesse

Cela renverra un tableau avec plusieurs promesse

enveloppera la promesse via le promise.all() dans une nouvelle promise instance

// 通过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) => {
        // ......
    })
})
Copier après la connexion

Cet article provient de la colonne tutoriel js, bienvenue pour apprendre !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

17 façons de résoudre l'écran bleu kernel_security_check_failure 17 façons de résoudre l'écran bleu kernel_security_check_failure Feb 12, 2024 pm 08:51 PM

Kernelsecuritycheckfailure (échec de la vérification du noyau) est un type de code d'arrêt relativement courant. Cependant, quelle qu'en soit la raison, l'erreur d'écran bleu rend de nombreux utilisateurs très angoissés. Laissez ce site présenter soigneusement 17 types de solutions aux utilisateurs. 17 solutions à l'écran bleu kernel_security_check_failure Méthode 1 : Supprimer tous les périphériques externes Lorsqu'un périphérique externe que vous utilisez est incompatible avec votre version de Windows, l'erreur d'écran bleu Kernelsecuritycheckfailure peut se produire. Pour ce faire, vous devez débrancher tous les périphériques externes avant d'essayer de redémarrer votre ordinateur.

Comment gérer les requêtes parallèles et asynchrones dans le développement d'API backend PHP Comment gérer les requêtes parallèles et asynchrones dans le développement d'API backend PHP Jun 17, 2023 pm 04:22 PM

À mesure que les applications Web continuent de se développer et de changer, la gestion des requêtes parallèles et asynchrones est devenue un sujet important dans le développement d'API backend PHP. Dans les applications PHP traditionnelles, les requêtes sont exécutées de manière synchrone, c'est-à-dire qu'une requête attendra jusqu'à ce qu'une réponse soit reçue, ce qui affectera la vitesse de réponse et les performances de l'application. Cependant, PHP a désormais la capacité de traiter des requêtes parallèles et asynchrones. Ces fonctionnalités nous permettent de mieux gérer un grand nombre de requêtes simultanées et d'améliorer la vitesse de réponse et les performances de l'application. Cet article explique comment gérer le développement d'API backend PHP.

Comment désinstaller Skype Entreprise sur Win10 ? Comment désinstaller complètement Skype sur votre ordinateur Comment désinstaller Skype Entreprise sur Win10 ? Comment désinstaller complètement Skype sur votre ordinateur Feb 13, 2024 pm 12:30 PM

Win10 Skype peut-il être désinstallé ? C'est une question que de nombreux utilisateurs veulent savoir, car de nombreux utilisateurs constatent que cette application est incluse dans le programme par défaut de leur ordinateur et craignent que sa suppression affecte le fonctionnement du système. ce site aide les utilisateurs Examinons de plus près comment désinstaller Skype Entreprise dans Win10. Comment désinstaller Skype Entreprise dans Win10 1. Cliquez sur l'icône Windows sur le bureau de l'ordinateur, puis cliquez sur l'icône des paramètres pour entrer. 2. Cliquez sur "Appliquer". 3. Entrez « Skype » dans la zone de recherche et cliquez pour sélectionner le résultat trouvé. 4. Cliquez sur "Désinstaller". 5

Résoudre le problème de la mise à jour en temps réel des données de requête asynchrone Vue Résoudre le problème de la mise à jour en temps réel des données de requête asynchrone Vue Jun 30, 2023 pm 02:31 PM

Comment résoudre le problème de la mise à jour en temps réel des données de requêtes asynchrones dans le développement de Vue Avec le développement de la technologie frontale, de plus en plus d'applications Web utilisent des données de requêtes asynchrones pour améliorer l'expérience utilisateur et les performances des pages. Dans le développement de Vue, comment résoudre le problème de la mise à jour en temps réel des données de requêtes asynchrones est un défi clé. La mise à jour en temps réel signifie que lorsque les données demandées de manière asynchrone changent, la page peut être automatiquement mise à jour pour afficher les dernières données. Dans Vue, il existe plusieurs solutions pour réaliser des mises à jour en temps réel des données asynchrones. 1. Machine réactive utilisant Vue

Comment utiliser for pour trouver la factorielle de n en JavaScript Comment utiliser for pour trouver la factorielle de n en JavaScript Dec 08, 2021 pm 06:04 PM

Comment utiliser for pour trouver n factorielle : 1. Utilisez l'instruction "for (var i=1;i<=n;i++){}" pour contrôler la plage de parcours de la boucle sur "1~n" 2. Dans la boucle ; body, utilisez "cj *=i" Multipliez les nombres de 1 à n et attribuez le produit à la variable cj 3. Une fois la boucle terminée, la valeur de la variable cj est la factorielle de n, puis affichez-la.

Quelle est la différence entre les boucles foreach et for Quelle est la différence entre les boucles foreach et for Jan 05, 2023 pm 04:26 PM

Différences : 1. for parcourt chaque élément de données via l'index, tandis que forEach parcourt les éléments de données du tableau via le programme sous-jacent JS ; 2. for peut terminer l'exécution de la boucle via le mot-clé break, mais forEach ne le peut pas ; .for peut contrôler l'exécution de la boucle en contrôlant la valeur de la variable de boucle, mais forEach ne peut pas ; 4. for peut appeler des variables de boucle en dehors de la boucle, mais forEach ne peut pas appeler des variables de boucle en dehors de la boucle ; est supérieur à forEach.

Erreur UniApp : solution ayant échoué à la requête asynchrone « xxx » Erreur UniApp : solution ayant échoué à la requête asynchrone « xxx » Nov 25, 2023 am 08:59 AM

Erreur UniApp : solution échouée de la demande asynchrone « xxx » Avec le développement rapide des applications mobiles, UniApp, en tant que cadre de développement multiplateforme, est de plus en plus favorisé par les développeurs. Cependant, comme tout autre cadre technique, UniApp présente également certains problèmes potentiels, parmi lesquels le problème du rapport d'erreurs en cas d'échec des requêtes asynchrones. Cet article présentera quelques raisons courantes pour lesquelles UniApp signale l'erreur : "Échec de la demande asynchrone 'xxx'" et proposera quelques solutions. Tout d’abord, nous devons comprendre ce qu’est une requête asynchrone. en U

Requêtes HTTP asynchrones en langage Go Requêtes HTTP asynchrones en langage Go Jun 02, 2023 pm 09:10 PM

À l'ère d'Internet d'aujourd'hui, de nombreuses applications doivent effectuer des requêtes réseau pour obtenir ou envoyer des données. Les requêtes HTTP sont l'une des méthodes de requête réseau les plus couramment utilisées. Dans le langage Go, nous pouvons utiliser le package net/http dans la bibliothèque standard pour lancer des requêtes HTTP, mais cela bloquera la coroutine actuelle. Alors comment implémenter des requêtes HTTP asynchrones en langage Go ? Cet article présentera deux méthodes d'implémentation de requêtes HTTP asynchrones dans le langage Go. Méthode 1 : utilisez goroutine et ChannelGorout

See all articles