NodeJS使用条件语句顺序asynchronous

是否有可能编写NodeJS代码,以顺序方式执行几个asynchronous步骤,其中一些步骤是基于条件语句执行还是绕过?

让我试着用伪代码写一个例子。

想象一下你有类似的东西

step1.then(step2).then(step3);

现在让我们添加一个选项:

var opt = true;

怎么可能做到这样的事情:

step1.then(opt && step2).then(step3);

或者,如果我们在中间说了两个不同的可能步骤:

step1.then(opt ? step2 : step3).then(step4);

编辑

如果可选步骤是在开始呢?

(opt && step1).then(step2).then(step3);

如果有人能够提出一些build议或提出build议,那将是非常棒的!

谢谢

假设step2step3是返回promise的函数,问题是什么:

  step1.then(function() { if( opt ) { return step2(); } else { return step3(); } }) .then(step4); 

编辑

你的第一个例子step1.then(opt && step2).then(step3); 看起来像这样:

 step1.then(function() { if( opt ) { return step2(); } }) .then(step3); 

如果你不返回任何东西,那么返回undefined 。 对于每个不是Promise的返回值,库都将创build一个使用该值parsing的Promise。

承诺/ A +:那么方法 :

promise2 = promise1.then(onFulfilled, onRejected);

如果onFulfilledonRejected返回值x ,则运行Promise Resolution Procedure [[Resolve]](promise2, x)