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
开发工具和手机上都这样
在项目里面选择不要转es5就可以了
已解决!
小程序开发中由于 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');
就这样,解决了!
大哥。按照你的方法引入了runtime.js但是又报错了。
项目
把lib文件夹中regenerator整个文件夹拷贝到项目再引入
const regeneratorRuntime = require(
'./utils/regenerator/runtime-module'
);
转载原文地址
不过我复制的是 regenerator-runtime 文件,然后引入的路径是:
const regeneratorRuntime = require('./utils/regenerator-runtime/runtime');
给大家做个参考