0.2.0 • Published 3 months ago

uniapp-promisify v0.2.0

Weekly downloads
-
License
AGPL-3.0
Repository
github
Last release
3 months ago

NPM Version NPM Downloads Build GitHub issues GitHub pull requests GitHub License

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 文件。

0.2.0

3 months ago

0.1.1

1 year ago

0.1.0

1 year ago