当前位置: 首页 > 面试题库 >

if-else中的诺言(蓝鸟)

习胤运
2023-03-14
问题内容

这是我的代码的简短版本。

var Promise = require('bluebird');
var fs = Promise.promisifyAll(require("fs"));

if (conditionA) {
  fs.writeFileAsync(file, jsonData).then(function() {
    return functionA();
  });
} else {
  functionA();
}

这两个条件都调用functionA。有办法避免其他情况吗?我可以,fs.writeFileSync但是我正在寻找一种非阻塞的解决方案。


问题答案:

我想你在找

(conditionA 
  ? fs.writeFileAsync(file, jsonData)
  : Promise.resolve())
.then(functionA);

这是短的

var waitFor;
if (conditionA)
    waitFor = fs.writeFileAsync(file, jsonData);
else
    waitFor = Promise.resolve(undefined); // wait for nothing,
                                          // create fulfilled promise
waitFor.then(function() {
    return functionA();
});


 类似资料:
  • 问题内容: 在某些情况下,当我从promise对象获得返回值时,我需要根据值的条件来启动两个不同的进程,例如: 我在想也许我可以这样写: 但是有了这个,我有两个问题: 我不确定开始一个新的承诺是否是个好主意,然后在承诺中进行流程; 如果我需要两个进程在最后一个函数中调用怎么办?这意味着它们具有相同的“终端” 我试图返回新的承诺,以保持原始链像: 但是在这种情况下,无论是对还是错,下一个都可以。 那

  • Perl条件语句有助于决策,这需要程序员指定一个或多个要由程序评估或测试的条件,以及在条件被确定为真时要执行的一个或多个语句,以及可选的其他条件如果确定条件为假,则执行语句。 以下是大多数编程语言中的典型决策结构的一般性 - 数字0,字符串'0'和“”,空列表()和undef在布尔上下文中都是false ,所有其他值都为true 。 否定真正的价值! 或not返回特殊的假值。 Perl编程语言提供

  • 本文向大家介绍C# if, if...else, if... else if ,包括了C# if, if...else, if... else if 的使用技巧和注意事项,需要的朋友参考一下 示例 该if语句用于控制程序的流程。一条if语句根据Boolean表达式的值标识要运行的语句。 对于单个语句,braces{}是可选的,但建议使用。 该if还可以有一个else条款,将在案件条件的计算结果来执

  • if语句之后可以跟一个可选的else if...else语句,这对于使用单个if ... else if语句测试各种条件非常有用。 当使用if...else if…else语句时,请记住 - 一个if可以有零个或一个else语句,它必须在任何其他if之后。 如果语句可以有零到多个if,它们必须在else之前。 一旦else if成功,其余的if或else语句都不会被测试。 if ... else

  • 主要内容:只使用if语句,多个if else语句,if语句的嵌套前面我们看到的代码都是顺序执行的,也就是先执行第一条语句,然后是第二条、第三条……一直到最后一条语句,这称为 顺序结构。 但是对于很多情况,顺序结构的代码是远远不够的,比如一个程序限制了只能成年人使用,儿童因为年龄不够,没有权限使用。这时候程序就需要做出判断,看用户是否是成年人,并给出提示。 在C语言中,使用 和 关键字对条件进行判断。请先看下面的代码: 可能的运行结果: 请输入你的年龄:23↙

  • Go 语言条件语句 if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。 语法 Go 编程语言中 if...else 语句的语法如下: if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ } else { /* 在布尔表达式为 false 时执行 */ } If 在布尔表达式为 true 时,其后紧跟的语句块执行