小程序 API promise化
基于回调函数的异步 API 的缺点
默认情况下,小程序官方提供的异步API 都是基于回调函数实现的。
缺点:容易造成回调地狱的问题,代码的可读性、维护性差!
API Promise 化
API Promise化,指的是通过额外的配置,将官方提供的、基于回调函数的异步 API ,升级改造为基于 Promise 的异步 API ,从而提高代码的可读性、维护性,避免回调地狱的问题。
实现 API Promise化
在小程序中,实现 API Promise 化主要依赖于 miniprogram-api-promise 这个第三方的 npm 包。它的安装和使用步骤如下:
# 1.0.4 版
npm i --save miniprogram-api-promise@1.0.4
// 在小程序入口文件中(app.js),只需要调用一次 promisifyAll() 方法
// 即可实现异步 API 的 Promise 化
import { promisifyAll } from 'miniprogram-api-promise'
const wxp = wx.p = {}
// promisify all wx's api
promisifyAll(wx,wxp)
调用 Promise 化之后的异步 API
// 页面的 .wxml 结构
<van-button type="danger" bindtap="getInfo">vant按钮</van-button>
// 在页面的 .js 文件中, 定义对应的 tap 事件处理函数
async getInfo() {
const { data: res } = await wx.p.request({
method: 'GET',
url: 'https://applet-base-api-t.itheima.net/api/get',
data: { name: 'zs', age: 20 }
})
console.log(res)
}