我有一个场景,初始请求将发送一个url路径,后续请求应该使用该路径作为使用来自服务的get请求命中的url。 (此部分已完成)
现在实际问题开始了,问题是 第二 请求不会直接提供输出,而是会将状态发送为 QUEUE 直到响应完全处理完毕。我所要做的就是再次等待/点击网址,直到 QUEUE 状态更改为 OK 状态(实际响应来到此处)。
第二次请求代码:
getOriginalData(URL:任何){
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 - Correctly using RXJS expand operator to make recursive http calls。
使用此实现会导致
ERROR RangeError: Maximum call stack size exceeded
但由于某种原因,它没有按预期工作。如何以标准方式进行递归调用,使其不会泛滥网络。
答案 0 :(得分:1)
从未使用过扩展运算符,但根据我的理解,您需要返回一个Observable.empty来停止递归请求