Promise现在可以使用了,但是yield 关键字被转码后,是这样的:
var t1 = regeneratorRuntime.mark(function t1() {
var l;
return regeneratorRuntime.wrap(function t1$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return t;
case 2:
l = _context.sent;
console.log(l);
case 4:
case ‘end’:
return _context.stop();
}
}
}, t1, this);
});
代码执行报错:
WAService.js:3 thirdScriptError
regeneratorRuntime is not defined;at “pages/index/index” page lifeCycleMethod onLoad function
ReferenceError: regeneratorRuntime is not defined
开发工具和手机上都这样
已解决!
小程序开发中由于 es6 至少 ios 9.1 不支持,所以如果已经在项目中使用了较多了es6或必须使用es6,则需要勾选 es6 转 es5,才能解决前述兼容问题。但若有使用 async await 会报 regeneratorRuntime is not defined 错误。解决方法如下:
下载 facebook 的 regenerator 库
取 regenerator-master/packages/regenerator-runtime 目录中的 runtime.js 文件放入你的项目中
在你有使用 async await 的文件前面引入这个 runtime.js 文件即可,引入代码如: const regeneratorRuntime = require('../../utils/runtime.js');
就这样,解决了!