Travailler avec des promesses à l'intérieur d'un if/else

J'ai une instruction conditionnelle dont j'ai besoin pour effectuer l'une des deux opérations, puis continuer après la selon la opération a résolu. Donc mon code, actuellement, se présente comme suit:

if (shoud_do_thing_a) { //should_do_thing_a is just a variable that determines which function to call. it is not a promise
  do_thing_a()
} else {
  do_thing_b()
}

//more code

Le problème est que les deux do_thing_a et do_thing_b retour des promesses, et je ne peux pas bouger jusqu'à ce quelle est exécutée en a résolu. La meilleure façon que j'ai trouvé pour résoudre ce est comme ceci:

var more_code = function () { 
  //more code
}

if (shoud_do_thing_a) {
  do_thing_a().then(more_code)
} else {
  do_thing_b().then(more_code)
}

Je n'aime pas cette structure. C'est difficile à suivre, car vous avez besoin de sauter partout pour trouver où more_code est défini à l'imaginer, j'ai ce type de contrôle de flux dans plusieurs endroits), plutôt que de simplement être en mesure de continuer la lecture.

Est-il une meilleure façon de faire face à ce genre de chose en javascript?

Ne shoud_do_thing_a représentent un Promise?
pas de. should_do_thing_a est juste une façon simple de vérifier
Alors quel est le problème avec le code en Question?
le premier bloc de code exécutera //more code avant que la promesse se résout. le deuxième bloc de fonctionner correctement, mais il est difficile de suivre le flux de contrôle lors de la lecture.
Voir mise à jour le post. Si ce n'est pas tout à fait clair ce que tu veux dire par "c'est difficile de suivre le flux de contrôle lors de la lecture". Ne more_code() de retour d'appel un Promise?

OriginalL'auteur ewok | 2017-11-02