我想在 subscribe 中捕获异常,但结果并不如预期。
this.userService.isUsernameValid (username)
.pipe (
catchError (err =>
{
return throwError (err);
}),
retryWhen (errors =>
errors.pipe (
delay (2500),
take (4),
concatMap (() => throwError ('Network error'))
)
)
)
.subscribe (
data =>
{
//
},
error =>
{
console.log (error)
});
Run Code Online (Sandbox Code Playgroud)
我希望只有在所有尝试都失败时才抛出异常。
上面的代码只发出第一个请求,并且在发生错误时抛出异常(不重做请求)。
如果我删除 concatMap,将进行 4 次尝试,但如果没有成功,我将无法在订阅中捕获错误。
提前致谢。