promise和async await捕获异常的区别
function f() {
try {
new Promise((resolve,reject)=>
{
reject('出错了');
})
} catch(e) {
console.log(e)
}
}
f()
async function f() {
try {
await new Promise((resolve,reject)=>
{
reject('出错了');
})
} catch(e) {
console.log(e)
}
}
f()
为什么改成await/async后,执行f()才能在catch中捕获到错误???
我理解try里面的过程都是同步,都应该被捕获到的
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不存在
XX里面的过程都是同步
这种说法,异步好比污染,你不能说放到某个容器的水一定不会被污染,倒是可以说放到某个容器里的水肯定会被污染。Promise
初始化时传入的执行器函数,会被放到下一个事件循环的开头执行,是异步的。promise传入的参数会立即执行,await 等待promise成功的异步结果
列如: