Rxjs 角度2可观测进入无限循环

Rxjs 角度2可观测进入无限循环,rxjs,angular2-services,Rxjs,Angular2 Services,我对安格拉尔很陌生!。我们有一个搜索方法,它创建一个异步的可观察并执行它。当提供有效输入时,效果良好。但无效输入会导致无限循环。如果你看到这个问题,请告诉我 请参阅下面的代码 const ngPromiseToObservable=(p:ng.ihttpromise):可观察=>{ 常量o=新主题(); p、 捕捉((e)=>o.error(e)); p、 然后((v)=>o.next(v)); 返回o; }; 出口级HttpObservable { 公共静态$inject=[ “$rootS

我对安格拉尔很陌生!。我们有一个搜索方法,它创建一个
异步的
可观察并执行它。当提供有效输入时,效果良好。但无效输入会导致无限循环。如果你看到这个问题,请告诉我

请参阅下面的代码

const ngPromiseToObservable=(p:ng.ihttpromise):可观察=>{
常量o=新主题();
p、 捕捉((e)=>o.error(e));
p、 然后((v)=>o.next(v));
返回o;
};
出口级HttpObservable
{
公共静态$inject=[
“$rootScope”,
“$http”,
“HttpErrors”,
];
建造师(
私有$rootScope:ng.IScope,
私有$http:ng.IHttpService,
私有httpErrors:Subject
) {}
handleHttpResponseErrors(o:可观察):可观察
{
返回o.do(
_努普先生,
(e:HttpResponseError)=>this.httpErrors.next(e),
_努普先生
);
}
ApplySynconAction(o:可观察):可观察
{
让ApplySync:()=>void=()=>{
返回此值。$rootScope。$applyAsync();
};
返回o.do(applyAsync,applyAsync,applyAsync);
}
//tslint:禁用下一行:无任何
post(url:string,data:any,config?:Object):可观察
{
返回此.handleHttpResponseErrors(this.applyAsyncOnAction(ngPromiseToObservable)(this.$http.post(url,data,config)).map((x)=>x.data));
}
//tslint:禁用下一行:无任何
put(url:string,data:any,config?:Object):可观察
{
返回此.handleHttpResponseErrors(this.applyAsyncOnAction(ngPromiseToObservable)(this.$http.put(url,data,config)).map((x)=>x.data));
}
获取(路径:字符串):可观察
{
返回此.handleHttpResponseErrors(this.applyAsyncOnAction(ngPromiseToObservable(this.$http.get(path)).map((x)=>x.data));

}
请检查代码的格式。它已格式化。请查看。谢谢