2017-07-24 41 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(); 
}