微信小程序使用async/await函数进行异步编程

早些时候,研究了一下前端异步编程,想着使用async/await函数编写异步代码,简直爽的不要不要的,而我本身是做小程序开发的,所有自然希望能够让async/await函数在小程序中大展拳脚了,这里就简单介绍一下如何在微信小程序中使用async/await函数来编写异步代码。

微信小程序本身支持es6的语法,并且可以开启Babel将es6转为es5。但是即使开启了语法编译,在你使用async函数时,还是会报如下错误:

regeneratorRuntime is not defined;at pages/index/index page lifeCycleMethod onLoad function
ReferenceError: regeneratorRuntime is not defined

我们知道babel在编译时,并不是支持所有的es6语法的,所以需要一些插件来对babel进行扩展,而这个regeneratorRuntime他其实就是一个对Generator、async函数提供的一种语法支持的插件。既然它提示regeneratorRuntime没有定义,那么我们就可以手动从npm下载regenerator-runtime这个包。然后,我们再将下载好的包丢到我们的小程序中的,然后在每个需要使用async函数的地方,使用以下代码:

// 以下是es6的模块化写法,你也可以使用require,一样的。注意路径和js文件,不要引用错了。
import regeneratorRuntime from '/utils/regenerator-runtime/runtime-module.js';

如果你嫌弃写这么长,你可以定义一个vendor.js功能js文件,然后在这个文件中暴露regeneratorRuntime模块,然后每次都这样引用即可:

import { regeneratorRuntime } from '/utils/vendor.js';

但是,不管怎么样,你都需要在使用async函数的地方引入他,并且,命名必须是regeneratorRuntime,不要搞错了。

如果你嫌弃每次写个项目都要复制一份regeneratorRuntime模块,那第二个方法那就是使用微信小程序新增的npm功能那么直接把包下载下来然后构建一下就可以直接用,而且,路径都不需要找了,直接和node中使用模块一样的使用方式。怎么用呢?这个......好像又要花篇幅来介绍怎么使用微信小程序的npm了。有点麻烦,要不,如果你想要了解微信小程序如何构建npm的,那直接看我这一篇文章吧:

微信小程序的npm使用心得:https://blog.csdn.net/qq_33024515/article/details/85164314

猜你喜欢

转载自blog.csdn.net/qq_33024515/article/details/85164159