收藏
回答

es6支持错误regeneratorRuntime is not defined

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


开发工具和手机上都这样


回答关注问题邀请回答
收藏

2 个回答

  • aker
    aker
    2017-04-05

    在项目里面选择不要转es5就可以了

    2017-04-05
    有用 4
    回复
  • 我就磨刀,啥也不做
    我就磨刀,啥也不做
    2018-10-11

    已解决!


    小程序开发中由于 es6 至少 ios 9.1 不支持,所以如果已经在项目中使用了较多了es6或必须使用es6,则需要勾选 es6 转 es5,才能解决前述兼容问题。但若有使用 async await 会报 regeneratorRuntime is not defined 错误。解决方法如下:


    1. 下载 facebook 的 regenerator 库

    2. 取 regenerator-master/packages/regenerator-runtime 目录中的 runtime.js 文件放入你的项目中

    3. 在你有使用 async await 的文件前面引入这个 runtime.js 文件即可,引入代码如: const regeneratorRuntime = require('../../utils/runtime.js');


    就这样,解决了!


    2018-10-11
    有用 2
    回复 3
    • Mask.
      Mask.
      2019-04-25

      大哥。按照你的方法引入了runtime.js但是又报错了。

      2019-04-25
      回复
    • Uzumaki Naruto
      Uzumaki Naruto
      2019-05-07

      项目

      把lib文件夹中regenerator整个文件夹拷贝到项目再引入

      const regeneratorRuntime = require('./utils/regenerator/runtime-module');


      转载原文地址


      2019-05-07
      2
      回复
    • 千竹
      千竹
      2023-03-02回复Uzumaki Naruto
      感谢,我使用你的方法解决了这个问题。

      不过我复制的是 regenerator-runtime 文件,然后引入的路径是:

      const regeneratorRuntime = require('./utils/regenerator-runtime/runtime');

      给大家做个参考
      2023-03-02
      回复
登录 后发表内容