dans le code de base tiers, j'ai trouvé cette chaîne de promesse: pour résoudre un certain problème dans l'application, j'ai besoin de supprimer le premier lien de la chaîne ( Cependant, cela déclenche l'erreur suivante: p> Enrichsignuppayload (...). Ensuite, ce n'est pas une fonction p>
BlockQuote> Pourquoi? Il n'y avait aucune erreur avant de supprimer le premier lien, alors pourquoi le deuxième lien devient un problème maintenant? Je ne comprends pas. P> Voici le corps du Dispatch ('starttask', ... root: true}) code>): p>
EnrichsignuPAYload () code> Fonction juste au cas où: p>
3 Réponses :
Avez-vous essayé d'ajouter une fonction pour revenir
Vous obtenez cette erreur parce que Je suppose, pour faire fonctionner les choses que vous pourriez faire Quelque chose comme: p> ou si le enrichsignuppayload code> ne renvoie pas un
prometteur code> comme
Dispatch code>. En outre, la première version de
d'inscription code> car un appel à
promesse.then code> renvoie également un
prometteur code>, afin que nous puissions appeler le prochain
.Ce code> dessus. Reportez-vous à This pour plus d'informations à ce sujet.
enrichsignuppayload code> n'est pas asynchronisé, vous pouvez simplement faire simplement: p>
La première solution fonctionne beaucoup grâce à beaucoup, mais le second semble beaucoup mieux. Pour une raison quelconque, quand je le fais, la chaîne de promesse semble résoudre instantanément sans passer à travers tous ses liens. Une idée pourquoi?
Comme mentionné dans la réponse, Enrichsignuppayload code> doit être synchrone pour que la deuxième solution fonctionne correctement.
Pour autant que je puisse le dire, il est synchrone, vous ne pouvez voir aucun appel d'API asynchrone dans aperofromstorage code> et
isfromapp () code> est définitivement synchrone aussi.
HM, ça devrait fonctionner alors .. Quelle chaîne de promesse parlez-vous? Voir aucune chaîne dans la deuxième solution
Vous pouvez envelopper le résultat en utilisant enrichsignuppayload code> ne renvoie pas une promesse.
promess.Resolve code>
: p> const signUp = ({ dispatch, commit, getters }, payload) =>
Promise.resolve(enrichSignUpPayload(payload, getters))
.then(apiRequest.signUpB2b)
Appliquer la première solution de @streletss fonctionne, mais sa deuxième solution, tout comme la vôtre semble faire la résolution de la chaîne sans passer à travers toutes les étapes. Une idée pourquoi?