當我試圖讓通過在角4 HTTP服務多個HTTP請求, 以前的請求獲得在Chrome取消(但他們到達服務器)。 例子:角4.一系列的HTTP請求被取消
const obs1 = this.http.get(`${API_URL}/transitions`);
const obs2 = this.http.get(`${API_URL}/states`);
obs1.subscribe();
obs2.subscribe(); // this will cancel obs1's http request
但是如果我更換.subscribe()
到.publish().connect()
像上面,它會正常工作(不是抵消)
const obs1 = this.http.get(`${API_URL}/transitions`);
const obs2 = this.http.get(`${API_URL}/states`);
obs1.publish().connect();
obs2.publish().connect();
或者,如果我合併兩個Observables
爲一,然後獲得認購像上面,它也能正常工作
const obs1 = this.http.get(`${API_URL}/transitions`);
const obs2 = this.http.get(`${API_URL}/states`);
Observable.merge(obs1, obs2).subscribe()
爲什麼我要面對這種行爲?我需要了解,而不是繞過。我怎樣才能讓一系列請求沒有合併,分叉等?
現在我感覺不好,因爲我會有關發表評論,但只是假定你的例子進行了簡化。如果你需要執行一個沒有訂閱的http請求。你可以調用'http.get(...)。take(1)'在獲取第一個項目後訂閱並銷燬訂閱。 – cgTag
@ctTag是否需要(1)將調用請求事件而不訂閱方法? – WimmDeveloper
@ctTag不,它不會。現在檢查。但是我剛剛意識到,對於HTTP方法非常合乎邏輯的使用'。取(1)' – WimmDeveloper