iPhone 5s Chrome v92.0.4515中async/await无法运行该如何处理?
问题解答
Chrome 92.0.4515 版本原生支持 async/await 语法,该特性本身不存在兼容性问题,无法正常运行是写法存在以下几处问题:
- 缺少模块类型声明
index.html 中存放执行代码的 script 标签未添加type="module"属性,浏览器会将代码识别为普通脚本,不支持 ES 模块规范的import()语法,直接抛出语法错误。正确写法参考:<script type="module"> (async function(){ const start = await import('./Main.js'); start.hello(); })(); </script> - 文件名大小写不匹配
iOS 系统的文件系统为大小写敏感规则,你的模块文件命名为Main.js(首字母大写),但导入路径写为./main.js(首字母小写),会导致浏览器找不到对应模块,加载失败。 - 本地协议限制
如果你是直接用 file 协议打开本地 index.html 文件测试,浏览器的跨域限制会阻止动态 import 加载本地模块文件,需要启动本地 HTTP 服务(例如使用http-server工具)通过 http 协议访问测试。
你可以用以下最简代码验证浏览器对 async/await 的支持性,只要能正常弹出提示即可确认特性兼容:
<script> async function testAsync() { return "async 支持正常"; } testAsync().then(res => alert(res)); </script>
内容的提问来源于stack exchange,提问作者God of all wars
相关产品推荐
相关产品推荐

