Skip to content
使用Promise调用微信小程序API
JavaScript
Branch: master
Clone or download
Latest commit 6ae3996 Nov 11, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.babelrc init Nov 10, 2018
.gitignore init Nov 10, 2018
.prettierrc init Nov 10, 2018
README.md init Nov 10, 2018
index.js init Nov 10, 2018
package.json init Nov 10, 2018
rollup.config.js init Nov 10, 2018

README.md

可能是设计最优雅的微信小程序API的Promise转化方式,支持所有wx对象中以下形式的API接口:

| 属性     | 类型     | 默认值 | 是否必填 | 说明                                             |
| -------- | -------- | ------ | -------- | ------------------------------------------------ |
| success  | function |        | 否       | 接口调用成功的回调函数                           |
| fail     | function |        | 否       | 接口调用失败的回调函数                           |
| complete | function |        | 否       | 接口调用结束的回调函数(调用成功、失败都会执行) |
| ...      | ...      |        | 是       | ...                                              |

使用Proxy + ES Promise实现,核心代码只有10行

安装

$ npm i wx-api-promisify

示例

若您的工程支持,推荐使用async/await。以下为获取用户信息->下载文件->保存到相册的Promise示例:

import wxPromise from 'wx-api-promisify'

Page({
  ...
  getUserInfo() {
    wxPromise.getUserInfo()
      .then(({ userInfo: { avatarUrl } }) => wxPromise.downloadFile({ url: avatarUrl }))
      .then(({ tempFilePath }) => wxPromise.saveImageToPhotosAlbum({ filePath: tempFilePath })
  },
})
You can’t perform that action at this time.