zoukankan      html  css  js  c++  java
  • 关于小程序使用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) {...语句删除,此时重新编译报错就消失了。

            至此问题得以解决。

  • 相关阅读:
    每天拿出来2小时浪费(文/王路) 作者: 王路
    objective-c自学总结(二)---init/set/get方法
    objective-c自学总结(一)---面向对象
    水仙花数
    独木舟上的旅行
    阶乘之和
    小明的调查统计
    管闲事的小明
    重温《STL源码剖析》笔记 第一章
    重温《STL源码剖析》笔记 第三章
  • 原文地址:https://www.cnblogs.com/zishang91/p/15589166.html
Copyright © 2011-2022 走看看