async 在 weex 使用时遇到的问题
本文介绍了async 在 weex 使用时遇到的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
编译 ES6 的工具是一样的,在 weex 项目中则报错。尝试过各种解决方案都失败了。
最简单的试验代码
async function f() {
return 'hello world';
}
f().then(v => console.log(v))
Uncaught TypeError: Cannot assign to read only property 'constructor' of object '#<Object>'
at eval (runtime.js:106)
at Object.eval (runtime.js:716)
at eval (runtime.js:725)
at Object.845 (index.js:1079)
at __webpack_require__ (index.js:22)
at Object.eval (runtime-module.js:19)
at eval (runtime-module.js:33)
at Object.844 (index.js:1072)
at __webpack_require__ (index.js:22)
at eval (index.js:1)
解决方案
报错原因是因为 Weex 用了严格模式,而且冻结了原生对象的原型(Object.prototype
、Array.prototype
等),所以不能重写原型上的方法,尤其 constructor
。
这个错可能是 async
的 polyfill 报出来的。里边还用了 eval
是怎么回事?严格模式下会有问题的。
如果不是强需求,在浏览器支持之前暂时先别用 async
,polyfill 也会影响性能的。
这篇关于async 在 weex 使用时遇到的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文