promise
方便 Promise 使用的工具函数
安装
npm
pnpm
yarn
npm install @jelper/promise
样例
toPromise
import { toPromise } from '@jelper/promise';
// 返回 resolove 情况
toPromise(1) // Promise.resolove(1);
toPromise(true) // Promise.resolove(true);
toPromise('xxxx') // Promise.resolove('xxxx');
toPromise({}) // Promise.resolove({});
toPromise(() => () => 'ok') // Promise.resolove('ok');
toPromise(Promise.resolve('resolove')) //Promise.resolove('resolove');
// 返回 reject 情况
toPromise(false) // Promise.reject(undefined);
toPromise(() => () => false) // Promise.reject(undefined);
toPromise(Promise.reject('reject')) // Promise.reject('reject');
callLikeSerial
import { callLikeSerial } from '@jelper/promise';
callLikeSerial([
() => console.log('begin'),
() => new Promise((r) => {
setTimeout(() => {
console.log('Promise');
r('result');
}, 1000);
}),
(data) => console.log(data),
]).then(() => console.log('end'));
// begin promise result end
buildPromiseHandler
import { buildPromiseHandler } from '@jelper/promise';
const [promise, resolve, reject] = buildPromiseHandler();
promise.then(() => {
// 执行
})
resolve(); // or reject();
buildCacheAsyncFn
import { buildCacheAsyncFn } from '@jelper/promise';
const getAsyncData = buildCacheAsyncFn(() => {
console.log('执行 fn')
return new Promise((r) => {
setTimeout(() => {
r('result');
}, 1000);
});
});
console.log(getAsyncData());
console.log(getAsyncData());
// 执行 fn
// result
// result
Api
toPromise
处理钩子函数返回值,将不同类型数据转成promise实例,方便执行后续操作
参数 | 说明 | 类型 | 默认值 | 版本 |
---|---|---|---|---|
toPromise | 构建实例 | (prpos: any) => Promise<any> | -- |
callLikeSerial
链式调用方法
参数 | 说明 | 类型 | 默认值 | 版本 |
---|---|---|---|---|
callLikeSerial | 构建实例 | (prpos: Array<() => Promise>) => Promise<any> | -- |
buildPromiseHandler
构建 Promise 句柄,将 promise的 resolve reject 暴露出去
参数 | 说明 | 类型 | 默认值 | 版本 |
---|---|---|---|---|
callLikeSerial | 构建实例 | () => [promise, resolove, reject] | -- |
buildCacheAsyncFn
构建缓存结果的异步函数
参数 | 说明 | 类型 | 默认值 | 版本 |
---|---|---|---|---|
buildCacheAsyncFn | 构建实例 | <T, R>(porps: ((p: T) => Promise<R>)) => (p: T) => Promise<R> | -- |