Promise - 返回拒绝或拒绝(值)之间的差异

enr*_*p89 5 javascript return node.js promise ecmascript-6

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

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

代码A

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

代码B

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

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

有用吗?

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

Til*_*old 4

简短的回答:回来或不回来并不重要。

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

  • 您说得对,不使用返回值,但是,有时在拒绝后返回很有用(如果您不希望执行方法的其余部分)。 (6认同)