我想写一个长承诺链,其中一些项目将根据条件被跳过。不幸的是,这是无效的语法:
function f(condition) {
A()
.then (B)
if (condition) {
.then(C)
.then(D)
}
.then(E)
}
做我想做的事最优雅的方式是什么?我已经有了处理数据流的方法,所以我不担心 B 的结果和 D 的结果可能看起来不相似。我只关心控制流程。
将
if
语句放在.then()
函数中。
function f(condition) {
A()
.then(B)
.then(arg => {
if (condition) {
return C(arg);
} else {
return D(arg)
}
})
.then(E)
}