Угловой перехватчик, повторный запрос на ошибку - PullRequest
0 голосов
/ 10 января 2019

Я хотел бы позволить пользователю повторить запрос, что приведет к ошибке. Я отображаю тост с кнопкой повтора, и когда пользователь нажимает кнопку «Повторить», запрос отправляется снова.

У меня проблема в том, что повторный запрос всегда отменяется

@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();
      })
    );
  }
}

Почему это отменено? И в приведенном выше коде нет утечки памяти, когда подписка будет действовать, пока пользователь не нажмет на попытку?

...