1.基于回调函数的异步API的缺点
默认情况下,小程序官方提供的异步API都是基于回调函数实现的,例如,网络请求的API需要按照如下的方式调用:
- wx.request({
- method:'',
- url:'',
- data:{},
- success:()=>{},//请求成功的回调函数
- fail:()=>{},//请求失败的回调函数
- complete:()=>{}//请求完成的回调函数
- })
缺点:容易造成回调地狱的问题,代码的可读性、维护性差!
2.什么是API Promise化
API Promise化,指的是通过额外的配置,将官方提供的、基于回调函数的异步API,升级改造为基于Promise化的异步API,从3.而提高代码的可读性、维护性、避免回调地狱的问题
3.实现Promise化
在小程序中,实现API Promise化主要依赖于miniprogram-api-promise这个第三方的npm包。
npm i --save miniprogram-api-promise@1.0.4
- //app.js
- import{ promisifyAll } from 'miniprogram-api-promise'
-
- const wxp = wx.p={}
- promisifyAll(wx,wxp)
4.调用Promise化之后的异步API
- //页面.js
-
- async getInfo(){
- const{data: res }=await wx.p.request({
- method:'GET',
- url:'https://www.escook.cn/api/get',
- data:{
- name:'zs',
- age:20
- }
- })
- console.log(res)
- },
-
-
- //页面.wxml
-
- <vant-button type="danger" bindtap="getInfo">按钮vant-button>
关于非Promise化的微信回调函数可参考文章:http://t.csdn.cn/yPCxV