У меня есть сценарий, в котором первоначальный запрос отправит путь URL-адреса, а последующий запрос должен использовать этот путь в качестве URL-адреса, на который нужно перейти, используя запрос get от службы.( Эта часть выполнена )
Теперь начинается актуальная проблема, проблема в том, что запрос 2nd не будет выдавать вывод напрямуюскорее он будет отправлять статус как QUEUE , пока ответ не будет полностью обработан.Все, что мне нужно сделать, это подождать / снова нажать на URL, пока состояние QUEUE не изменится на состояние OK (фактический ответ приходит сюда).
Код для второго запроса:
getOriginalData (url: any) {
const proxyRequest=this._getRequest(url)
return proxyRequest
.expand(response => {
if (response.uuid==null) {
this._getRequest(url);
} else {
Rx.Observable.empty();
}
return Observable.of(response);
});
private _getRequest(url:any){
return this._http.get(url)
}
Я следил за этой реализацией, чтобы достичь своей цели: Angular - правильно использовать оператор расширения RXJS для выполнения рекурсивных вызовов http .
Использование этой реализации приводит к
ERROR RangeError: Maximum call stack size exceeded
Но по какой-то причине он работает не так, как ожидалось.Как можно сделать рекурсивный вызов стандартным способом, чтобы он не затоплял сеть.