javascript 在特定Angular 时间后发送“错误超时”

cbwuti44  于 2023-01-16  发布在  Java
关注(0)|答案(1)|浏览(132)

我正在进行API调用,但有时需要更多的时间才能获得响应。我想设置一个特定的时间,比如“8秒”,以等待响应,如果前面提到的时间已经过去,API调用应该停止并在控制台中显示“错误超时”。
我试过在管道中添加超时,其他帖子是这样说的:

`this.http.post<RefreshTokenResponseMessage>(url, tokenRequestMessage, { headers }).pipe(timeout(20)).toPromise()`

但它显示超时错误。
我还尝试在头中添加timeout参数,如下所示:

`const headers = new HttpHeaders({authorization: 'Bearer ${sessionstorage.getItem('authData')}',timeout: '${2}',});
return this.httpClient.get(URL, { headers });`

但我也面临着同样的问题,它不是触发错误。
有人遇到过这种情况吗?

ar7v8xwq

ar7v8xwq1#

如果您希望在8秒后http响应仍未到达时输出console.error,则可以执行以下操作:

this.http.post<RefreshTokenResponseMessage>(url, tokenRequestMessage, { headers }).pipe(
    tap((res) => console.log('Result:', res)),
    timeout(8000),
    catchError(_ => {
        console.error('ERROR time out');
        return EMPTY;
    })
)       
.subscribe();

相关问题