0.2.0 • Published 3 months ago
uniapp-promisify v0.2.0
English | 简体中文
初衷
UniApp 官方的 API 使用的是过时的回调风格,尽管最新版本的 UniApp 支持了 Promise
方式,但官方 API 的类型还没有更新,更糟糕的是官方的 Promisify
方法在 Vue 2 和 Vue 3 中的行为不同。
与其手动处理多个平台的条件判断和类型转换,不如直接对官方的回调风格 API 进行简单的包装,将回调转换为 Promise
的风格,并自动推断返回类型。
安装
npm install uniapp-promisify
# Or use yarn
yarn add uniapp-promisify
使用
import { promisify } from 'uniapp-promisify'
// Promisify 单个函数
const login = promisify(uni.login)
const res = await login()
// ^? UniNamespace.LoginRes
// 或者 Promisify `uni` 全局对象
const pUni = promisify(uni)
const res = await pUni.login()
// ^? UniNamespace.LoginRes
理想的使用方式是,建立一个文件,导出被 Promisify 过的 uni
对象:
// utils.ts
import { promisify } from 'uniapp-promisify'
export {
uni: promisify(uni)
}
// App.vue
import { uni } from './utils.ts'
onLoad(async () => {
await uni.login()
})
许可证
本项目使用 AGPL-3.0 许可证 - 有关详细信息,请参阅 LICENSE 文件。