• 关于小程序使用async/await报错regeneratorRuntime is not defined的解决方案


            小程序在请求后端接口时,使用了ES6语法,虽然我们可以通过微信开发者工具中的详情--本地设置--ES6转ES5,将ES6转ES5不开启,这样可以解决这个报错。但是并不是最理想的解决办法,为了兼容大多较低版本的设备,ES6转ES5还是很有必要的。

    从报错上来看是少了 regenerator-runtime 库,所以可以这样解决:

                从node_modules中找到regenerator-runtime文件夹,进入复制runtime.js文件(我是直接从以往做的Vue项目中直接复制runtime.js拿来用,没有的可以自行npm install regenerator然后找到文件)到小程序的自定义文件夹如utils,在使用async/await的页面中引入,如import regeneratorRuntime form '../../utils/runtime.js';

           此时重新编译会发现控制台报错:Function(...) is not a function,这是因为regenerator-runtime文件被修改了,加了一个 Function函数导致小程序运行报错,此时需要进行以下操作:

                1.将var regeneratorRuntime = (function (exports) {"use strict";... 中的regeneratorRuntime改为runtime;

           2.将文件最后一个try {regeneratorRuntime = runtime;} catch (accidentalStrictMode) {...语句删除,此时重新编译报错就消失了。

            至此问题得以解决。

  • 相关阅读:
    Spring Boot 自定义starter
    jvm中的年轻代 老年代 持久代 gc
    nginx反向代理服务器端口问题
    ACE Editor在线代码编辑器简介及使用引导
    Linux下MySQL 5.6.24的编译安装与部署
    C3p0的参数
    Mysql 查看连接数,状态
    linux下mysql定时备份数据库
    Mysql中存储方式的区别
    mysql常用语句
  • 原文地址:https://www.cnblogs.com/zishang91/p/15589166.html
Copyright © 2020-2023  润新知