API promisify
微信小程序几乎所有的 API 都是采用回调的形式,很容易陷入“回调地狱”,完全享受不到“现代化”的异步编程 Promise、async/await 所带来的优势。
我们可以对微信小程序的 API Promise 化。// 封装export const getImageInfo = (src) => { return new Promise((success, fail) => wx.getImageInfo({ src, success, fail }))
}// 使用const getBg = getImageInfo(bgUrl)const getAvatar = getImageInfo(avatarUrl)Promise.all([getBg, getAvatar]).then(([bg, avatar]) => { // ...})复制代码
进一步的,我们可以将一些常用的 API 进行封装:// utils/promisify.js/**
* 获取图片信息,网络图片需先配置 download 域名才能生效。
* @param {String} src
*/export const getImageInfo = (src) => { return new Promise((success, fail) => wx.getImageInfo({ src, success, fail }))
}/**
* 保存图片到系统相册
* @param {Object} options
*/export const saveImageToPhotosAlbum = (options) => { return new Promise((success, fail) &#