小程序官方提供的异步API都是基于回调函数来实现的,如大量的使用回调函数就会造成 回调地狱 的问题,同时代码的可读性和可维护性差,那么这篇内容主要来讲小程序API的Promise化,Promise是一块非常重要的内容,如有时间会出一片关于对Promise的浅陋见解!
API Promise化
将小程序API的Promise化,就是将小程序官方提供的基于异步回调的API转成Promise的异步API,从而解决回调地狱的问题,以及使代码的可读性和可维护性提高 ;
npm - API Promise化
小程序中的实现API的Promise化主要是依赖第三方的 npm 包 - miniprogram-api-promise
操作流程:
1. 使用npm安装第三方依赖包 - miniprogram-api-promise ,可添加@指定版本,点击
npm i --save miniprogram-api-promise
2. 点击使用npm模块,使用 npm init -y 初始化,否则构建会报错;
未初始化:
初始化:(安装完成之后就初始化)
3. 微信开发者工具点击【使用npm模块】,紧接着【构建npm】;
4. 构建成功弹出这个提示,同时有多出来一个文件夹出来;
5. 在app.js中引入miniprogram-api-promise包;
可以看一下这个包的使用:附加地址
import { promisifyAll } from 'miniprogram-api-promise'
const wxp = wx.p = { }
promisifyAll(wx, wxp)
在使用 wx.request 做异步回调的时候可以换成 wx.p.request 即可,同时还可以写成 async await 的形式,如下:
// bindtap事件 - getInfo
async getInfo(){
const res = await wx.p.request({
url:'',
method:'',
success:(res)=>{
},
console.log(res); // 返回一个promise对象
})
}
这篇内容是将在小程序中使用第三方包实现promise化的方法以及所遇到的一些问题,当然这是其中的方法之一,更多的将在之后更大叫交流学习!