特定移动端浏览器async函数try/catch直接返回值执行异常求助
问题原因分析
问题核心在于无参数的catch块语法兼容性:你使用的Mb2345Browser 15.6.2基于Chrome 62内核,而该内核不支持ES2019新增的无参数catch特性。
- 第一段代码中的
catch {}是ES2019才引入的语法,允许在不需要捕获错误对象时省略catch的参数。 - Chrome 62发布于2017年,早于ES2019的定稿,因此会将该语法判定为非法代码,直接终止整个async函数的执行。
- 第二段代码使用的
catch(e)是ES2015(ES6)就已支持的标准语法,Chrome 62对ES6核心特性支持完善,因此能正常运行。
补充说明
Chrome官方的特性支持记录显示,无参数catch是从Chrome 74(2019年4月发布)开始支持的,你的目标浏览器内核版本远早于该版本,自然存在兼容性问题。
内容的提问来源于stack exchange,提问作者Marcus.Aurelianus
相关产品推荐
相关产品推荐

