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议,那将是非常棒的!
谢谢
假设step2
和step3
是返回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);
如果
onFulfilled
或onRejected
返回值x
,则运行Promise Resolution Procedure[[Resolve]](promise2, x)
。