小程序使用 async await

8,024 阅读1分钟

实践的方式如下:

  • 第一个问题: 虽然小程序不支持,但是我们可以引入js库啊。双手奉上facebook的开源库regenerator 下载'packages/regenerator-runtime'这个路径下的runtime.js,放到自己小程序项目下的utils或者lib文件夹下。

  • 第二个问题: Async跟Await的用法

  • Async - 定义异步函数(async function someName(){...})

    • 自动把函数转换为 Promise
    • 当调用异步函数时,函数返回值会被 resolve 处理
    • 异步函数内部可以使用 await
  • Await - 暂停异步函数的执行 (var result = await someAsyncCall();)

    • 当使用在 Promise 前面时,await 等待 Promise 完成,并返回 Promise 的结果
    • await 只能和 Promise 一起使用,不能和 callback 一起使用
    • await 只能用在 async 函数中
import regeneratorRuntime from '../../utils/runtime.js'

onLoad: function() {
    this.initData();
  },

  async initData(){
	await this.initMyData();//请求接口1
	await this.initTodayData();//请求接口2
  }

  initMyData:function(){
	console.log('开始请求1')
	........
	//回调函数的方法内写
	console.log("完成请求1")
	
	
}

  initTodayData:function(){
	console.log('开始请求2')
	........
	//回调函数的方法内写
	console.log("完成请求2")
}

  • 作者简介:何永峰,芦苇科技web前端开发工程师,喜欢到处寻找好吃的,平时爱好是跳舞,打篮球,听音乐,有时会出席一些大型的舞蹈商演活动,目前是Acum.Revolution現狀革命成员之一。并且代表作品:萌鸡驾到、美旅出行小程序、电竞桌子小程序。擅长网站建设、公众号开发、微信小程序开发、小游戏、公众号开发,专注于前端领域框架、交互设计、图像绘制、数据分析等研究,访问 www.talkmoney.cn 了解更多。