承诺 - 退货拒绝或拒绝(价值)之间的差异

时间:2016-06-15 08:19:53

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

我是新来的承诺,我想知道哪个是本机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 之间的区别是什么?如果有的话?

1 个答案:

答案 0 :(得分:3)

简短回答:如果你回来没关系。

spec告诉我们不使用执行程序的返回值。仅检查呼叫是否突然完成。 (抛出错误导致突然完成)如果发生突然完成,则拒绝承诺。