【问题标题】:cannot set timeout in catcherror angular 6无法在 catcherror Angular 6 中设置超时
【发布时间】:2019-01-03 09:27:48
【问题描述】:

在 catcherror 中设置超时显示角度错误

(error: any) => void 类型的参数不可分配给(err: any, caught: Observable<HttpEvent<any>>) => ObservableInput<{}> 类型的参数。 类型 void 不可分配给类型 ObservableInput<{}>。 [2345]

http://i.imgur.com/qWSyIP0.png

          catchError(error => {
           if(error==403)
           {
            setTimeout(() => {
                return next.handle(this.addToken(req,  authService.getToken())).pipe();
            }, 2000);
           }

        })

【问题讨论】:

  • setTimeout 返回没有意义,因为它是一个异步操作。您需要重新考虑您的工作流程。
  • 你可以在没有setTimeout的情况下像return next.handle(this.addToken(req, authService.getToken())).pipe(delay(2000));一样做
  • return next.handle(request).pipe(catchError( 试试这个
  • 感谢 cmets,我尝试了所有方法,但在我的情况下没有奏效,所以我改变了我的工作流程:)

标签: angular typescript angular6


【解决方案1】:

在管道内使用delay,如.pipe(delay(2000))

【讨论】:

    猜你喜欢
    • 2019-02-28
    • 1970-01-01
    • 2016-08-26
    • 2018-11-23
    • 2013-02-19
    • 2021-03-09
    • 2019-04-20
    • 1970-01-01
    • 2022-11-12
    相关资源
    最近更新 更多