go
模仿 Go 语言的错误处理风格,执行一个函数(异步或普通),返回一个 fulfilled 的 Promise,其值在成功时为 [Awaited<result>, null],在失败时为 [null, error]。
Added in v0.0.4
Usage
ts
import { go } from 'parsnip-kit'
function getUltraAnswer() {
return Promise(resolve => setTimeout(resolve, 750))
}
const [result0, error0] = await go(getUltraAnswer)
// [42, null]
if (error0 !== null) {
// do something...
}
function throwErrorExample() {
throw new Error('test')
}
const [result1, error1] = await go(throwErrorExample)
// [null, Error: test]API
Type Parameter
| Arg | Type | Description |
|---|---|---|
T | | 函数返回值的类型 |
U | = any | 错误的类型(默认为 any) |
Arguments
| Arg | Type | Optional | Default | Description |
|---|---|---|---|---|
func | (...x: any[]) => T | false | undefined | 要执行的函数 |
Returns
| Type |
|---|
Promise<[T, null] | [null, U]> |