Javascript return Promise.reject和抛出新错误之间的差异
我正在研究return-Promise.reject和throw-new-Error之间的区别,它们看起来很相似,下面是catch代码:Javascript return Promise.reject和抛出新错误之间的差异,javascript,promise,Javascript,Promise,我正在研究return-Promise.reject和throw-new-Error之间的区别,它们看起来很相似,下面是catch代码: } catch (err) { return Promise.reject(err); //throw new Error(err); } 对于抛出新错误,我只看到添加了“TypeError” 有时我在异步函数中使用,看起来也很好 throw(err); { "data": { "userlogs":
} catch (err) {
return Promise.reject(err);
//throw new Error(err);
}
对于抛出新错误,我只看到添加了“TypeError”
有时我在异步函数中使用,看起来也很好
throw(err);
{
"data": {
"userlogs": null
},
"errors": [
{
"message": "TypeError: Cannot read property 'findAll' of undefined",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"userlogs"
]
}
]
}
有了承诺,信息更加清晰:
{
"data": {
"userlogs": null
},
"errors": [
{
"message": "Cannot read property 'findAll' of undefined",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"userlogs"
]
}
]
}
有什么建议吗?我正在使用wait for call函数,最好在该场景中使用Promise.reject,并在任何情况下使用throw new Error?重要的区别在于
throw
构造了一个新的Error
实例,而Promise
版本则没有。我怀疑如果您返回Promise.reject(新错误(err))
或将throw
更改为justthrow err代码>那么行为就完全一样了。看这个问题[可能对你有帮助]谢谢你的四个回答…我把一切都改成了承诺。拒绝