0

我对 Rxjs 有点陌生。我想要做的是调用 API 5 次,但如果 5 次请求仍然失败,则向我的组件返回自定义错误值。但不知何故它没有达到catchError。

start(): Observable<any> {
        return this.http.put<any>(`${this.apiConfig}/start`, {})
            .pipe(
                map(res => {
                    return res;
                }),
                retryWhen(errors => errors.pipe(delay(3000), take(4))
                ),
                catchError(() => of({
                    status: "NO_CONNECTION"
                }))
            );
    }

4

1 回答 1

1

您应该正确使用retryWhen运算符并在不正确时发送错误。将您的代码更改为:

retryWhen(errors => errors.pipe(

delay(3000),

take(4),

concatMap(e => throwError(e))

))
于 2021-03-17T12:19:52.323 回答