gpt4 book ai didi

javascript - 带有条件语句的 NodeJS 顺序异步

转载 作者:行者123 更新时间:2023-11-29 21:53:54 26 4
gpt4 key购买 nike

是否可以编写以顺序方式执行多个异步步骤的 NodeJS 代码,其中某些步骤根据条件语句执行或绕过?

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

假设你有类似的东西

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

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

var opt = true;

怎样才能达到这样的效果:

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

或者,如果我们假设中间有 2 个不同的可能步骤:

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

编辑

如果可选步骤改为在开头?

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

如果有人能阐明一些想法或提出建议,那就太棒了!

谢谢

最佳答案

假设 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 的返回值,库将创建一个使用该值解析的 Promise。

Promises/A+: The then Method :

promise2 = promise1.then(onFulfilled, onRejected);

If either onFulfilled or onRejected returns a value x, run the Promise Resolution Procedure [[Resolve]](promise2, x).

关于javascript - 带有条件语句的 NodeJS 顺序异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27512244/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com