J'ai ce code: et je veux appeler une autre méthode, (Mise à jour: J'ai besoin de le faire en utilisant des promesses seulement - je ne peux pas utiliser async / attendre.) p> Ce code ne fonctionne pas - il dit que ce code ne fonctionne pas Les deux J'ai également essayé de enchaîner le deuxième appel sur le premier: < / p> mais encore une fois, il dit que entité.tag.getallforuserer code>, qui renvoie une balises
< / Code> Liste. P>
list code> et
étiquette code> sont indéfinis: p>
Liste code> est indéfini. Qu'est-ce que em> fonctionne em> p> p>
4 Réponses :
Répondre à ma propre question. S'il vous plaît ne supprimez pas, car cela pourrait être utile pour quelqu'un d'autre!
return (entity.User.getProjects(req.user.id, ....)) .then((list) => Promise.all([list, entity.Tag.getAllForUser(req.user.id)])) .then(([list, tags]) => { // party with both list and tags objects! return { list: list, tags: tags } }
Je recommande d'utiliser promess.all code> pour exécuter les deux requêtes en même temps! Votre solution ici va inutilement des choses en série.
simplement utiliser simplement si vous ne pouvez pas utiliser async / attendre code>
async / attendre code> (même si je vous recommande de les utiliser ) Vous pouvez utiliser la promesse.Tous p>
Merci! Ce serait le moyen le plus simple, mais malheureusement, je ne peux pas faire cela, car le codebase que je travaille ne le permet pas. (Avez-vous mis à jour la question pour clarifier cela.)
@Richard Vous pouvez utiliser promess.all code> même si je recommanderai toujours d'utiliser
asyc / attendre code> qui rend le code plus lisible et facile à entretenir.
La meilleure solution ici est recommandation obligatoire à utiliser promess.all code>, qui prend une liste de promesses et renvoie une liste des valeurs résolues:
async code> et
attendre code>: p>
Cela dépend des demandes que vous êtes disons que j'ai Si vous en avez, dites,
Cela devient beaucoup plus agréable avec async / attendre:
p> obtenir plusieurs valeurs résolues sur des demandes indépendantes: h3>
getUSers () < / Code> et
GetCenties () CODE>, et les deux sont indépendants (vous n'avez pas besoin des utilisateurs pour obtenir les villes et les vexives). Alors vous pouvez utiliser
promess.all code>: p>
obtenir plusieurs valeurs résolues sur les demandes dépendantes: h3>
getuserer () code>, qui renvoie un utilisateur, puis
getcouple (utilisateur) code>, qui renvoie une personne liée à un utilisateur, puis
gethouse (user1, User2) code>, ce qui a besoin de besoin d'entre eux, vous pouvez procéder comme suit: p>
Merci! C'est l'explication la plus rapide que j'ai vue n'importe où :)
Pourquoi avez-vous plusieurs retours?
@chevybow parce que je le fais mal.
Votre titre dit «Méthodes de chaîne», mais pourquoi auriez-vous besoin enchaînant i> du tout?
@Trincot peut-être je ne le fais pas! J'ai besoin d'exécuter les deux et d'utiliser les résultats des deux. Désolé de ne pas être plus précis.