收藏
回答

es6支持错误regeneratorRuntime is not defined

问题模块
API和组件

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


开发工具和手机上都这样


最后一次编辑于  2017-04-05  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

4 个回答

  • aker
    aker
    2017-04-05

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

    2017-04-05
    赞同 22
    回复
  • 我就磨刀,啥也不做
    我就磨刀,啥也不做
    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
    赞同 22
    回复 2
    • Mask.
      Mask.
      04-25

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

      04-25
      赞同
      回复
    • 哎呦哥哥
      哎呦哥哥
      05-07

      项目

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

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


      转载原文地址


      05-07
      赞同 11
      回复