Maison > interface Web > js tutoriel > le corps du texte

Instance de traitement de promesse qui exécute plusieurs requêtes asynchrones interdépendantes

巴扎黑
Libérer: 2018-05-24 13:45:51
original
3476 Les gens l'ont consulté

L'éditeur suivant vous apportera un article sur le traitement des promesses de plusieurs requêtes asynchrones interdépendantes (explication avec exemples). L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur et jetons un coup d'oeil

Dans les projets, on rencontre souvent plusieurs requêtes asynchrones qui dépendent les unes des autres. S'il y a trois requêtes ajax a, b et c, b doit s'appuyer sur les données renvoyées par a, et c a besoin des données renvoyées par les requêtes a et b. Il est bien entendu déconseillé d’utiliser des requêtes imbriquées. Cela rend le code difficile à maintenir et les demandes sont nombreuses. De nombreuses questions se poseront.

La promesse est de résoudre le problème des multiples requêtes asynchrones. Promise est un objet fourni par ES6, qui est utilisé pour transmettre des messages pour les opérations asynchrones.

La promesse a trois états : En attente (en cours), Résolue (terminée, également appelée Réalisée) et Rejetée (échec).

Téléchargez le code directement. Il existe des requêtes pour a et b, et b dépend des données de requête de a. Comme suit :

function a(){
      return new Promise(function(res,rej){
        $.ajax({
          url:"a",
          type: "GET",
          async:true,
          dataType:"json",
          success:function(data){
            console.log(data,"a");
            res(data);
          }
        })
      });
    }
    function b(data){
      console.log(data,"data");
      return new Promise(function(res,rej){
        $.ajax({
            url:"b",
            type: "POST",
            async:true,
            data:JSON.stringify(data),
            dataType:"json",
            success:function(data){
              console.log(data,"b");
              res();
            }
          })
      });
    }
    $("#btn").click(function(){
      a().then(function (data){
        b(data);
      }).then(function(){
      })
    })
Copier après la connexion

J'ai trouvé une URL d'interface sur Internet, et vous pouvez voir les résultats en cours d'exécution :

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal