Comment utiliser Q. tous les() avec un ensemble complexe de promesses?
Considérer que j'ai un tableau d'objets et de promesses, quelque chose comme:
[{
a: 1
}, {
a: 4
}, {
a: 4
}, {
promiseSend: [Function],
valueOf: [Function]
}, {
promiseSend: [Function],
valueOf: [Function]
}]
Maintenant lors de l'appel, je Q.all(arr)
et de retourner la valeur de l'objet en then()
, rien ne se passera et encore mon tableau contient la promesse d'objets. Est-il possible de travailler avec le Q.all()
et de la complexité des tableaux?
OriginalL'auteur Afshin Mehrabani | 2013-08-09
Vous devez vous connecter pour publier un commentaire.
C'est la façon dont Q est censé fonctionner.
Pour obtenir toutes les valeurs, pas les promesses, vous pouvez utiliser
.spread()
:Chaque argument de la
spread()
rappel sera le résultat de chaque promesse, dans son ordonnance.Si vous pensez que vous aurez beaucoup de promesses dans un tel tableau, en boucle via l'argument fourni dans
then()
et remplacer les promesses de sa valeur:si vous aimez utiliser les
.spread()
et n'avez pas de fixer la taille de la matrice de la promesse tenue, vous pouvez obtenir les valeurs de toutes les promesses de laarguments
de la propriété, à l'intérieur de la réussite de la fonction de.spread()
. Tous node.js la fonction a un objet arguments à l'intérieur d'eux, et que cet objet a tous les paramètres passés à cette fonction actuelle invokation.OriginalL'auteur gustavohenke