为什么aurelia的fetch客户端会捕获错误,而不是响应

时间:2017-11-26 02:39:18

标签: aurelia aurelia-fetch-client

我正在Aurelia,aurelia-fetch客户端和Typescript上切齿。 当我设置catch函数时,我会在typescript中注意到

.catch(error => //do something error)

error由typescript定义为any但是当我在调试器中检查它时,我可以看到它是类型Response

为什么类型为any而非Response

1 个答案:

答案 0 :(得分:0)

请注意,fetch method of HttpClient的返回类型为Promise<Response>

fetch(input: Request | string, init?: RequestInit): Promise<Response>;

因此,您所指的catch实际上来自Promisecatch的类型定义实际来自TypeScript(lib.d.ts):

/**
 * Attaches a callback for only the rejection of the Promise.
 * @param onrejected The callback to execute when the Promise is rejected.
 * @returns A Promise for the completion of the callback.
 */
catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult>;

any的{​​{1}}类型的通用定义非常合理,因为它涵盖了所有情况。

希望这有帮助。