在为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);
});
});
答案 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); return
。 Promise
(“执行者”)的参数不应该返回任何有意义的内容,所以不,如果您使用return
则无关紧要。
答案 2 :(得分:-1)
不,你不应该因为一旦承诺得到解决/拒绝,它永远不会改变状态