Je veux sauter une fonction d'une chaîne de cascade Fonctions avec Mon code ressemble à ceci: p> asyncjs code> dans Nodejs code>. if(!myBool){
return next();
}
5 Réponses :
Une alternative peut être: où Autre que cela, vous ferez mieux de le faire explicitement, évitez de rendre votre code trop compliqué, plus simple est généralement meilleur p> mise à jour: p> f1 code>, f2 code> et f3 code> sont vos fonctions . P>
Merci pour votre réponse. Mais que si Mybool est défini dans la fonction F1 pendant la cascade?
Dans ce cas, je tirerais soit tirer F2 code> dans F1 code> (je vais mettre à jour) ou simplement utiliser le conditionnel dans F2 code> comme vous avez mentionné (le Alternative que vous vouliez éviter)
Je pense que cela devrait fonctionner:
var finalCallback = function(err, result){
if(err)
// handle error..
else
console.log('end! :D');
}
async.waterfall(
[
function step1(callback){
// stuff
callback(null, someData);
},
function step2(someData, callback){
if(skip_step_3)
finalCallback(null, someData);
else
callback(null, someData);
},
function step3(moreData, callback){
// more stuff
callback(null, moreData);
}
],
finalCallback
)
en utilisant if-async Module Votre code ressemblera à ceci:
var async = require('async')
var ifAsync = require('if-async')
async.waterfall([
foo,
ifAsync(p1).then(c1).else(c2),
bar
], function(err) {})
Je recommanderais d'utiliser clojurescript qui a un superbe bibliothèque de base-async qui rend la vie super Facile lorsque vous traitez avec des appels ASYNC.
Dans votre cas, vous écririez quelque chose comme ceci: p> notez le Le code bloque d'abord sur la première fonction ASYNC. Ensuite, si le résultat est vrai, il exécutera la deuxième fonction ASYNC sur cela également. Enfin, il exécutera la troisième fonction ASYNC et bloquera à ce sujet. P> P> go code> macro qui causera Le corps à courir de manière asynchrone et la fonction qui bloquera jusqu'à ce que les fonctions ASYNC reviennent. P>
Je suis en retard pour répondre, mais async-if-sinon pourrait vous aider.
échantillon code p>