小程序在請求后端接口時,使用了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) {...語句刪除,此時重新編譯報錯就消失了。
至此問題得以解決。