gpt4 book ai didi

Angular 2 rxjs 超时回调

转载 作者:太空狗 更新时间:2023-10-29 17:25:17 24 4
gpt4 key购买 nike

如果 HTTP 调用发生超时事件,我想向用户提供反馈。

我试过这个:

return this._http
.post(apiUrl + 'Search/Everything', params, {withCredentials: true, headers: this.headers})
.timeout(5000, this._feedbackService.error("Custom error message"))
.map((response: Response) => response.json().data);

但是一旦进行了 HTTP 调用,就会触发反馈服务。

如何在超时开始时启动服务?

最佳答案

假设 _feedbackService.error 返回一个 Error,您应该能够使用 timeoutWith 执行您需要的操作和 defer运营商:

import "rxjs/add/observable‌​/defer";
import "rxjs/add/observable‌​/throw";
import "rxjs/add/operator/timeoutWith";
import { Observable } from "rxjs/Observable‌​";

return this._http
.post(apiUrl + 'Search/Everything', params, {withCredentials: true, headers: this.headers})
.timeoutWith(5000, Observable.defer(() => Observable.throw(this._feedbackService.error("Custom error message"))))
.map((response: Response) => response.json().data);

关于Angular 2 rxjs 超时回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38990350/

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