gpt4 book ai didi

javascript - Angular http.get() 检测调用超时

转载 作者:行者123 更新时间:2023-11-30 19:38:32 24 4
gpt4 key购买 nike

我正在努力弄清楚如何使用 Angular http 和 promises 检测请求超时。我正在使用以下代码来格式化来 self 的 API 的响应,它目前正在超时,我想用错误消息处理它,当我的 API 返回实际错误消息时,这里的代码确实有效,只是它甚至没有被击中当 API 超时时。

我找不到任何关于 Angular http 有一种方法来处理超时的文档,所以任何东西都会有帮助,谢谢!

代码:

/**
* GET from the API
* @param params What to send
* @param path Where to go
*/
public get(path, params): Promise<any> {
return this.formatResponse(
this.http.get(this.apiUrl + path, params)
);
}

/**
* Takes the API response and converts it to something usable
* @param response Promise of formatted data
*/
public formatResponse(response): Promise<any> {
return response
.toPromise()
.then(r => r.json().data)
.catch(e => {
console.log('hitting error');
const errors = e.json().errors;
let error = 'Something went wrong, please try again in a few minutes.';

if (errors && errors.length > 0) {
error = errors[0].message;
}

// Create alert
this.utilities.createAlert(
'Whoops!',
error
);

// Throw the error
throw new Error(error);
});
}

在网络选项卡中监控时,我看到:

Failed to load resource: The request timed out.

最佳答案

这个呢

public get(path, params): Promise<any> {
return this.formatResponse(
this.http.get(this.apiUrl + path, params).pipe(timeout(10000), catchError(this.handleError)
);
}

并根据需要创建错误处理程序。其余的将保持不变。

关于javascript - Angular http.get() 检测调用超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55679319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com