@cceevv/tryit
v2.0.0
Published
Async/await wrapper for easy error handling in js
Maintainers
Readme
简单的同步或异步错误处理包装器,让 try catch 见鬼去吧。
English · 简体中文
安装
pnpm add @cceevv/tryit
# or
yarn add @cceevv/tryit
# or
npm i @cceevv/tryit开发
pnpm install
pnpm build
pnpm test使用
import tryit from "@cceevv/tryit";
function syncDemo() {
const DefaultValue = { a: 0, b: "" };
const [data = DefaultValue, err] = tryit(() => {
return JSON.parse('--------{"a":1234, "b":"bbb"}');
});
if (err) {
console.log("xxxxxxxxxx", err);
return;
}
console.log("handle data...", data);
}
async function asyncDemo() {
const promise = new Promise((resolve, reject) => {
resolve("resolve data");
// reject('reject error');
});
const [data, err] = await tryit(() => promise);
if (err) {
console.log("xxxxxxxxxx", err);
return;
}
console.log("handle data...", data);
}
async function followedReturnedPromise() {
const [data, err] = await tryit(async () => {
return Promise.resolve(666);
});
if (err) {
console.log("xxxxxxxxxx", err);
return;
}
console.log("handle data...", data);
}接口
export type TryitResult<T, U = Error> = [T, null] | [undefined, U];
export declare function tryit<T, U = Error>(func: () => T): TryitResult<T, U>;
export declare function tryit<T, U = Error>(
func: () => PromiseLike<T>,
): Promise<TryitResult<T, U>>;tryit 只接受函数。异步值也需要包装成 () => promise。传入无效参数时会抛出 TypeError。
License
MIT License (c) cceevv
