vtils

Home > utils > run

run() function

以数组的方式返回函数执行的结果,如果函数返回一个异步操作,将会执行该异步操作并将其结果作为函数执行的结果返回。

Signature:

export declare function run<T extends () => any, R extends ReturnType<T>>(fn: T): Promise<[
    unknown,
    R extends PromiseLike<any> ? R extends PromiseLike<infer X> ? X : unknown : R
]>;

Parameters

Parameter Type Description
fn T 要执行的函数

Returns:

Promise<[ unknown, R extends PromiseLike<any> ? R extends PromiseLike<infer X> ? X : unknown : R ]>

返回 [错误信息, 结果数据],错误信息为 null 表示没有错误

Example

// 函数执行成功
const [err, res] = await run(() => 'ok') // => [null, 'ok']
const [err, res] = await run(async () => 'ok') // => [null, 'ok']

// 函数执行出错
const [err, res] = await run(() => { throw 'err' }) // => ['err']
const [err, res] = await run(async () => { throw 'err' }) // => ['err']