Я хотел бы позволить пользователю повторить запрос, что приведет к ошибке. Я отображаю тост с кнопкой повтора, и когда пользователь нажимает кнопку «Повторить», запрос отправляется снова.
У меня проблема в том, что повторный запрос всегда отменяется
@Injectable({ providedIn: 'root' })
export class ErrorInterceptor implements HttpInterceptor {
constructor(private snackSrv: MatSnackBar) { }
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(request).pipe(
retryWhen(err => {
const snackRef = this.snackSrv.open('Failed', 'retry');
return snackRef.onAction();
})
);
}
}
Почему это отменено? И в приведенном выше коде нет утечки памяти, когда подписка будет действовать, пока пользователь не нажмет на попытку?