【发布时间】:2019-08-09 15:19:03
【问题描述】:
我有这个辅助函数:
export function to(promise: Promise<any>) {
return promise
.then((data: any) => [null, data])
.catch((err: Error) => [err, null]);
}
这个函数(理论上)应该可以帮助我在函数中使用await 时发现错误。例如:
const [err, data] = await to(validate(card));
问题是在运行时,我收到以下错误:
to 不是函数或其返回值不可迭代
虽然预期的返回签名应该是Promise<[Error, null]> Promise<[null, Error]>,但它看起来像返回(同样,理论上,因为它实际上失败了):Promise<any[] | Error[]>:
我错过了什么?
【问题讨论】:
-
我认为您的
validate呼叫应该是对to的呼叫,对吧? -
@ShamPooSham 你是对的。我的错。我已经更新了我的问题
-
你能举一个发生这种情况的小例子吗?
-
我在纯 Javascript 中遇到了完全相同的错误,因为被调用函数中的一个分支错误地返回了单个元素而不是数组。
标签: javascript typescript promise