';新';Javascript中用于错误()处理的运算符
我正在使用Promissions,并发现在拒绝时,建议将';新';Javascript中用于错误()处理的运算符,javascript,error-handling,es6-promise,Javascript,Error Handling,Es6 Promise,我正在使用Promissions,并发现在拒绝时,建议将Error()对象作为参数传递,以便启用错误处理 我找到了一些示例,其中给出了newerror(),还有一些示例只传递了Error() 在测试了几个案例之后,我没有发现一种用法和另一种用法之间有任何区别,正如在这里看到的,两种拒绝的行为似乎完全相同: const p = new Promise((resolve, reject) => { setTimeout(reject, 1000, Error("Nope..."));
Error()
对象作为参数传递,以便启用错误处理
我找到了一些示例,其中给出了newerror()
,还有一些示例只传递了Error()
在测试了几个案例之后,我没有发现一种用法和另一种用法之间有任何区别,正如在这里看到的,两种拒绝的行为似乎完全相同:
const p = new Promise((resolve, reject) => {
setTimeout(reject, 1000, Error("Nope..."));
//setTimeout(reject, 1000, new Error("Nope..."));
});
p.then(val => { console.log(val) })
.catch(error => { console.error(error.message) });
在这种情况下,两种错误处理方法之间的实际区别是什么
在测试了几个案例之后,我没有发现一种用法和另一种用法之间有任何区别
这是因为当您将Error
作为函数调用时(不使用new
),它的行为与您使用new
调用它的行为完全相同。也就是说,Error(x)
和newerror(x)
做完全相同的事情。这是Error
功能的“功能”。通常,不使用new调用函数和使用new
调用函数是有区别的,只是在这种情况下没有区别
发件人:
错误构造函数:
- 当作为函数而不是构造函数调用时,创建并初始化新的
对象。因此,函数调用Error
相当于具有相同参数的对象创建表达式Error(…)
newerror(…)
我应该知道这是一个重复的问题。如果你不接受,我将删除我的答案。(重复的问题不一定是坏事。在这种情况下,我不认为我的答案增加了dupetarget答案中没有涵盖的内容。)