recherche

Maison  >  Questions et réponses  >  le corps du texte

c++ - promise.all mangouste exploite la base de données

Utilisez Promise.all([p1, p2]) pour exécuter deux fonctions de promesse. Les deux fonctions utilisent mangouste en interne pour faire fonctionner la base de données.

Si p1 est rejeté et p2 est résolu.

Ma question est la suivante : p2 a réellement effectué des opérations sur la base de données. Est-ce vrai ? Ou promise.all garantit-il que p1 et p2 sont résolus avant d'effectuer des opérations de base de données réelles ?

On dirait qu’il s’agit d’un problème transactionnel de mangouste.

曾经蜡笔没有小新曾经蜡笔没有小新2759 Il y a quelques jours931

répondre à tous(2)je répondrai

  • 为情所困

    为情所困2017-06-15 09:24:14

    Promise.all se résout lorsque tous les itérables donnés sont terminés, ou est rejeté lorsqu'une promesse échoue.
    Si des promesses rejetées sont adoptées, toutes les valeurs de promesse échouent immédiatement, rejetant toutes les autres promesses si elles ne sont pas résolues. Si un tableau vide est transmis, cette méthode se terminera immédiatement.

    var p0 = new Promise((resolve, reject) => {
          setTimeout(() => {
              console.log(1)
          }, 100);
    }); 
    var p1 = Promise.resolve(3);
    var p2 = 1337;
    var p3 = new Promise((resolve, reject) => {
      setTimeout(reject, 100, "foo");
    }); 
    var p4 = new Promise((resolve, reject) => {
          setTimeout(() => {
              console.log(2)
          }, 100);
    });
    var p = Promise.all([p0, p1, p2, p3, p4]).then(values => { 
      console.log(values);
    }, values => {
        console.log(values) // foo
    }); // 1 2

    1) Chaque promesse en promesse sera exécutée

    2) A ce moment, le statut de p devient rejeté

    répondre
    0
  • 習慣沉默

    習慣沉默2017-06-15 09:24:14

    Pour votre situation, il m'est arrivé d'écrire un package, https://github.com/zaaack/mon... Il devrait pouvoir répondre à vos besoins

    répondre
    0
  • Annulerrépondre