Comment gérer la si-sinon dans la promesse, alors?

Dans certains cas, quand je reçois une valeur de retour d'une promesse d'objet, j'ai besoin de lancer deux then() precesses dépendent de la valeur de la condition, comme:

promise().then(function(value){
    if(//true) {
        //do something
    } else {
        //do something 
    }
})

Je pense peut-être que je peux l'écrire comme:

promise().then(function(value){
    if(//true) {
        //call a new function which will return a new promise object
        ifTruePromise().then();
    } else {
        ifFalsePromise().then();
    }
})

mais avec cela, j'ai deux questions:

  1. Je ne suis pas sûr si c'est une bonne idée de commencer une nouvelle promesse, puis de traiter en une promesse;

  2. que faire si j'ai besoin de deux processus d'appel d'une fonction dans le dernier? Cela signifie qu'ils ont la même "terminal"

J'ai essayé de retourner la nouvelle promesse de garder l'original de la chaîne comme:

promise().then(function(value){
    if(//true) {
        //call a new function which will return a new promise object
        //and return it
        return ifTruePromise();
    } else {
        //do something, no new promise
        //hope to stop the then chain
    }
}).then(//I can handle the result of ifTruePromise here now);

mais dans ce cas, si c'est vrai ou faux, la prochaine then fonctionne.

ALORS, quelle est la meilleure pratique à manipuler?

InformationsquelleAutor Brick Yang | 2015-10-21