一、基于回调函数的异步API的缺点
默认情况下,小程序官方提供的异步API都是基于回调函数实现的,例如,网络请求的API需要按照如下的方式调用:
wx.request({
method:'',
uri:'',
data:{},
success:()=>{},//请求成功的回调函数
fail:()=>{},//请求失败的回调函数
compelte:()=>{}//请求完成的回调函数
})
缺点:容易造成回调地狱的 问题,代码可读性、维护性差!
二、什么是API Promise化
API Promise化,指的是通过额外的配置,将官方提供的,基于回调函数的异步API,从而提高代码的可读性、维护性,避免回调地狱的问题
三、实现API Promise化
在小程序中,实现API Promise化主要依赖miniprogram-api-promise这个第三方的npm包。它的安装和使用步骤如下:
npm install --save miniprogram-api-promise@1.0.4
//app.js
import {promisfyAll} from 'miniprogram-api-promise'
const wxp=wx.p={}
promisfyAll(wx,wxp)
调用:
//wxml
<van-button type='danger' bindTap='getInfo'>vant按钮</van-button>
//javascript
async getInfo(){
const {data:res}=await wx.p.request({
method:'GET',
url:'http://www.escoook.cn/api/get',
data:{name:'zs',age:20}
})
consloe.log(res)
}