2017-07-24 42 views
1

以下代码每隔1秒发送一次http请求。这工作正常,但我没有找到办法,我怎么可以关闭/以编程方式完成Web服务请求。如何停止IntervalObservable

//服务类

public getData() { 

    return IntervalObservable.create(1000) 
    .flatMap(() => { 
     return this.http.post(this.uri) 
     .map(res => res.text()); 
    }); 
    } 

//主类

testInterval() 
    { 

     var obs = this.servletService.getData() 

     obs.subscribe(

     (data) => { 


     }, 
     (error) => { 
     }); 
    } 
+1

只需在'subscribe'调用返回的订阅上调用'unsubscribe'即可。 – cartant

+0

@cartant我试图调用类似'obs.subscribe()。unsubscribe()'但这似乎不工作。 –

回答

2

要停止间隔订户保存到变量中并在必要时取消它。

this.subscriber = obs.subscribe(...); 

... 

if(this.subscriber.isStopped) { 
    this.subscriber.unsubscribe(); 
}