Я делаю вызовы службы HTTP 3 раза, когда я получаю ошибку 401, используя метод retryWhen при использовании операторов Rxjs. Моя проблема заключается в том, что когда я получаю ошибку 401 в качестве статуса, мне нужно сделать другую службу для обновления токена, а затем еще раз повторить попытку вызова службы http 3 раза. Я не могу использовать сервис внутри retryWhen метода обратного вызова, так как он всегда показывает это как неопределенное. Можете ли вы дать мне решение для этого.
return this.http.get(url, this.getOptions(options)).retryWhen(errors => {
return errors.mergeMap((error) => {
console.error('error status....', this, error, error.status);
if (error.status === 401) {
// i need to make other service call here
this.httpPollingService.updateToken(); // unable to call this call.
return Observable.of(error);
} else {
return Observable.throw(error);
}
}).delay(5000).take(2);
});