@smt-lib/promisify
v1.0.1
Published
--- title: @smt-lib/promisify header: develop nav: extensions sidebar: @smt-lib/promisify ---
Downloads
2
Readme
title: @smt-lib/promisify header: develop nav: extensions sidebar: @smt-lib/promisify
@smt-lib/promisify
解释: @smt-lib/promisify
用于让 swan API 支持 Promise 方式调用。
小程序种使用三方 npm 包方法,见 npm 使用说明
安装:
npm i @smt-lib/promisify -S
代码示例
在开发者工具中预览效果
扫码体验
图片示例
代码示例1 - promisifyAll
import {
promisifyAll
} from '@smt-lib/promisify';
// promisify 全部 API
// 可以将 swanp 导出以便在任何地方使用
export const swanp = promisifyAll(swan);
// 调用异步 API 将返回 Promise
swanp.getSystemInfo().then(console.log);
swanp.showModal().then(swan.openSetting());
// 调用同步 API
swanp.getSystemInfoSync();
// 通过兼容方式调用
swanp.getSystemInfo({
success(res) {
console.log(res);
}
});
代码示例2 - promisify
import {
promisify
} from '@smt-lib/promisify';
// promisify 单个 API
promisify(swan.getSystemInfo)().then(console.log);
代码示例3 - addAsyncAPIs
import {
promisifyAll,
addAsyncAPIs
} from '@smt-lib/promisify';
// 假设宿主提供 myAsyncAPIName 私有 API
addAsyncAPIs(['myAsyncAPIName']);
// promisify 全部 API
// 可以将 swanp 导出以便在任何地方使用
export const swanp = promisifyAll(swan);
// 调用异步 API 将返回 Promise
swanp.myAsyncAPIName().then(console.log);
方法参数
promisifyAll
解释: 用于 promisify 全部 API,将 source
对象上的所有 API 复制到 target
对象上,如果 API 是异步 API (在内置的异步 API 列表中),则将该 API promisify 之后复制到 target
对象,如果是非异步 API 会直接复制到 target
对象。
方法参数
source: Object, [target: Object]
参数说明
| 参数 | 类型 | 必填 | 默认值 |说明| | ---- | ---- | ---- | ----|----| | source | Object | 是 | | API 的来源对象 | | target | Object | 否 | {} | promisify API 的存放对象 |
返回值
| 值类型 | 说明 | |---|---| | Object | promisify 之后的 target 对象 |
promisify
解释: 用于将单个 API 函数 promisify,调用 promisify 后的函数,将返回一个 Promise 对象,这个 Promise 对象的 resolve
和 reject
状态对应原始 API 函数的 success
和 fail
。同时,原始 API 函数执行的返回值,可以通过执行 promisify 后函数返回的 Promise 对象的 returnValue
属性获取。
方法参数
apiFn: Function
参数说明
| 参数 | 类型 | 必填 | 默认值 |说明| | ---- | ---- | ---- | ----|----| | apiFn | Function | 是 | | 原始 API 函数 |
返回值
| 值类型 | 说明 | |---|---| | Function | 经过 promisify 的 API 函数 |
addAsyncAPIs
解释: 用于添加额外的 API(名称数组)到内置异步 API 列表。对于宿主特有的 API 或则 swan 新增的 API,可以通过这个方法来设置,需要在 promisifyAll
之前调用。
方法参数
APINames: Array
参数说明
| 参数 | 类型 | 必填 | 默认值 |说明| | ---- | ---- | ---- | ----|----| | APINames | Array. | 是 | | 需要添加到内置异步 API 列表的 API 名称数组 |
removeAsyncAPIs
解释: 用于从内置异步 API 列表移除API(名称数组)。
方法参数
APINames: Array
参数说明
| 参数 | 类型 | 必填 | 默认值 |说明| | ---- | ---- | ---- | ----|----| | APINames | Array. | 是 | | 需要从内置异步 API 列表移除的 API 名称数组 |