【问题标题】:Promise - difference between return reject or reject(value) [duplicate]承诺 - 返回拒绝或拒绝(值)之间的区别 [重复]
【发布时间】:2016-10-16 05:42:21
【问题描述】:

我是 Promise 的新手,我想知道原生 Promise (NodeJs) 的最佳实践是什么。

我在下面放了一些代码来更好地理解这个问题:

代码 A

function foo(condition) {
return new Promise((resolve, reject) => {
    if(condition){
        resolve('Promise result!');
    } else {
        reject('Promise rejected!');
    }
});
} 

代码 B

function foo(condition) {
return new Promise((resolve, reject) => {
    if(condition){
        return resolve('Promise result!');
    } else {
        return reject('Promise rejected!');
    }
});
}

在方案 B 中,我添加了 return 语句。

有用吗?

代码 A代码 B 有什么区别?有的话?

【问题讨论】:

  • Promise 构造函数并不关心你从函数返回什么。可以是return 42;
  • 所以在代码 A 中,promise 的返回是 return undefined?
  • 是的。 .....

标签: javascript node.js return promise ecmascript-6


【解决方案1】:

简答:回不回都无所谓。

spec 告诉我们执行器的返回值没有被使用。仅检查调用是否返回突然完成。 (抛出错误会导致突然完成)如果发生突然完成,则承诺将被拒绝。

【讨论】:

  • 你说得对,没有使用返回值,但是,在拒绝后返回有时很有用(如果你不希望执行其余的方法)。
猜你喜欢
  • 2015-12-25
  • 1970-01-01
  • 2019-11-25
  • 1970-01-01
  • 2017-09-04
  • 1970-01-01
  • 2016-03-11
  • 2019-11-02
  • 2019-05-21
相关资源
最近更新 更多