是否可以编写 NodeJS 代码来按顺序执行多个异步步骤,其中某些步骤根据条件语句执行或绕过?
让我尝试用伪代码编写一个示例。
想象一下你有类似的东西
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);
如果有人能提供一些线索或提出建议,那就太棒了!
谢谢
最佳答案
假设 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 的返回值,库将创建一个用该值解析的 Promise。
Promises/A+: The then Method :
promise2 = promise1.then(onFulfilled, onRejected);
If either
onFulfilled
oronRejected
returns a valuex
, run the Promise Resolution Procedure[[Resolve]](promise2, x)
.
关于javascript - NodeJS 带有条件语句的顺序异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27512244/