我应该在ES6 Promise中解析/拒绝之前使用return吗?

时间:2016-05-16 15:47:31

标签: javascript ecmascript-6 es6-promise

在为ES6承诺调用resolve / reject时,使用 return 更正确吗?这有助于调用堆栈吗?

return new Promise((resolve, reject) => {           
this._mariadb.query(...,
    (err, rows) => {             
            if (err) {return reject(err);}                
            if (rows.info.numRows > 0) {return resolve(true);}        
            return resolve(false);                
        });            
    });

3 个答案:

答案 0 :(得分:3)

不使用返回值,但它可以是提前退出函数的快速方法。这就是全部。您可以编写上面的代码,以完全相同的方式运行而无需返回

if (err)
  reject(err);
else if (rows.info.numRows > 0)
  resolve(true);
else
  resolve(false);

甚至更好

if (err)
  reject(err);
else
  resolve(rows.info.numRows > 0);

答案 1 :(得分:1)

return reject(err)只是一种更简洁(但也更令人困惑)的方式来说reject(err); returnPromise(“执行者”)的参数不应该返回任何有意义的内容,所以不,如果您使用return则无关紧要。

答案 2 :(得分:-1)

不,你不应该因为一旦承诺得到解决/拒绝,它永远不会改变状态