如何在Promise.all()中使用if表达式?

杨砖

我想用来Promise.all()处理两个Promise对象,但是第二个是内部if表达式。如何处理这种情况?

看起来像这样:

functionA(); 

if(true) {
    functionB(); 
}

functionA()并且functionB()都返回一个Promise对象。在正常情况下,我可以使用

Promise.all([
    functionA(),
    functionB()
]).then(resule => {
    console.log(result[0]);  // result of functionA
    console.log(result[1]);  // result of functionB
})

但是如何处理if表达式?我应该换行if(true){functionB()}new Promise()

本杰明·格伦鲍姆(Benjamin Gruenbaum)

好吧,if如果将promise用作值的代理,则可以使用s,也可以将promise嵌套一个级别(个人而言),我更喜欢将promise用作它们的代理。请允许我解释一下:

var p1 = functionA();
var p2 = condition ? functionB() : Promise.resolve(); // or empty promise
Promise.all([p1, p2]).then(results => {
      // access results here, p2 is undefined if the condition did not hold
});

或类似地:

var p1 = functionA();
var p2 = condition ? Promise.all([p1, functionB()]) : p1; 
p2.then(results => {
     // either array with both results or just p1's result.
});

将条件包装在a中new Promise显式构造,应避免使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在绑定表达式中使用正则表达式文字?

来自分类Dev

Thymeleaf:如何在表达式中使用片段参数

来自分类Dev

如何在C ++模板中使用比较表达式?

来自分类Dev

如何在mysql sql中使用数学表达式?

来自分类Dev

如何在Realm中使用正则表达式

来自分类Dev

如何在Java的正则表达式中使用OR?

来自分类Dev

如何在angularjs中使用正则表达式

来自分类Dev

如何在jrxml文件中使用lambda表达式?

来自分类Dev

如何在正则表达式中使用Unicode

来自分类Dev

如何在SSRS表达式中使用If Else

来自分类Dev

如何在yii中使用正则表达式

来自分类Dev

如何在system()中使用通配符表达式

来自分类Dev

如何在SMLNJ中使用正则表达式

来自分类Dev

如何在Django中使用表达式进行过滤

来自分类Dev

如何在表达式中使用Mysql SELECT CASE

来自分类Dev

如何在MVEL表达式中使用变量?

来自分类Dev

如何在EFCore中使用EF .SqlQuery表达式?

来自分类Dev

如何在表达式中使用委托

来自分类Dev

如何在熊猫中使用正则表达式?

来自分类Dev

如何在Isabelle / HOL中使用Lambda表达式?

来自分类Dev

如何在匹配的守卫表达式中使用TryParse?

来自分类Dev

如何在LXML XPath表达式中使用变量

来自分类Dev

如何在终端中使用算术表达式?

来自分类Dev

如何在linq lambda表达式中使用ToShortDateString?

来自分类Dev

如何在yii中使用正则表达式

来自分类Dev

如何在php中使用正则表达式?

来自分类Dev

如何在EL布尔表达式中使用II(或)

来自分类Dev

如何在正则表达式中使用加号

来自分类Dev

如何在SSRS表达式中使用If Else