【发布时间】:2017-09-27 20:55:20
【问题描述】:
我偶然发现了一些对我来说很奇怪的代码:
try {
somePromise()
.then(res => console.log(res));
} catch (err) {
console.error(err);
}
如果某些somePromise() 失败,这不会被捕获,应用程序会崩溃吗?这个 try-catch 有什么作用吗?
应该是这样,对吗?:
somePromise()
.then(res => console.log(res))
.catch(err => console.error(err));
【问题讨论】:
-
这确实看起来不对。
-
somePromise()仍然可能引发错误。 -
@FelixKling 所以你说的 try-catch 仍然会崩溃,因为没有真正处理承诺错误?
-
我只是说在
somePromise内部,在返回 promise 之前可能会抛出错误。 -
你是对的。 “未声明不是例外”是错误的。我混淆了关于 es6 和 v8/node 的想法。 Common JS 实际上将其捕获为运行时错误。
标签: javascript ecmascript-6 promise es6-promise