2017-08-07 191 views
2

我有這樣的代碼:如何關閉HTTP連接?

this.http.get(url) 
.subscribe(
    data => { 

    }, 
    error=>{ 

    } 
) 

如何我可以關閉HTTP連接?

//Create connection 
URL url = new URL(targetURL); 
connection = (HttpURLConnection) url.openConnection(); 
... 
connection.disconnect(); 

那麼你並不需要做的是:

+0

你是指什麼意思關閉? –

+0

@Keerthi,連接是開放的,但隱含。看到我的回答 –

+0

我的不好。感謝您指出。刪除錯誤的評論。 – Keerthi

回答

4

如果像它在Java中的完成你在談論的模擬的東西。 Angular使用XHR browser API來發出HTTP請求。此API不需要顯式打開或關閉連接,一旦發送請求並獲取響應或超時,它就會自動執行此操作。

另外,由於this.http.get返回的observable自身完成,因此您不需要明確地取消訂閱observable。下面是相關來源:

export class XHRConnection implements Connection { 
    ... 
    response: Observable<Response>; 
    constructor(req: Request, browserXHR: BrowserXhr, baseResponseOptions?: ResponseOptions) { 
     this.request = req; 
     this.response = new Observable<Response>((responseObserver: Observer<Response>) => { 
      ... 
      // load event handler 
      const onLoad =() => { 
       ... 
       const response = new Response(responseOptions); 
       response.ok = isSuccess(status); 
       if (response.ok) { 
        responseObserver.next(response); 
        responseObserver.complete(); <-------------------- 
        return; 
       } 
       responseObserver.error(response); 
      }; 

XHRConnection創建的可觀察到的是你收到觀察到,當你做http.get()

+1

ty男人,謝謝你的信息;) – Mars