我有这段代码可以拦截http请求:
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
this.spinner.show();
return next.handle(req).do((event: HttpEvent<any>) => {
if (event instanceof HttpResponse) {
this.spinner.hide();
}
}, (err: any) => {
if (err instanceof HttpErrorResponse) {
// hide spinner
this.spinner.hide();
// show error dialog
let errorMessage = 'An unknown error occurred!';
if (err.error.message) {
errorMessage = err.error.message;
}
this.dialog.open(ErrorComponent, { data: { message: errorMessage } });
return throwError(err);
}
}); }
如何仅在http响应超过2秒时显示微调框?
谢谢
答案 0 :(得分:0)
您可以使用RxJS timer()运算符。
我建议在服务中执行此操作,在该服务中您可以在Observable
对象上进行操作,而不是使用HTTP拦截器
更多信息进入documentation。
// RxJS v6+
import { timer } from 'rxjs';
//emit 0 after 1 second then complete, since no second argument is supplied
const source = timer(1000);
//output: 0
const subscribe = source.subscribe(val => console.log(val));