जब मैं कोणीय 4 में http सेवा के माध्यम से कई http अनुरोध करने के लिए प्रयास करते हैं, पिछले अनुरोध क्रोम में रद्द कर दिया हो (लेकिन वे सर्वर तक पहुंचने)। उदाहरण:कोणीय 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
लेकिन अगर मैं ऊपर की तरह .publish().connect()
को .subscribe()
की जगह, इसे सही ढंग से काम करेंगे (कोई रद्द)
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()
मुझे इस व्यवहार का सामना क्यों करना है? मुझे समझने की जरूरत है, बाईपास नहीं। मैं कैसे विलय बिना अनुरोध की श्रृंखला बना सकते हैं, forking आदि?
अब मुझे बुरा लगता है, क्योंकि मैं इसके बारे में टिप्पणी करने जा रहा था लेकिन सिर्फ यह मान लिया कि आपका उदाहरण सरलीकृत है। यदि आपको सदस्यता के बिना http अनुरोध निष्पादित करने की आवश्यकता है। आप 'http.get (...) को कॉल कर सकते हैं। (1) 'ले लें जो पहले आइटम के बाद सदस्यता को सब्सक्राइब और नष्ट कर देगा। – cgTag
@ctTag क्या है (1) सब्सक्राइब विधि के बिना अनुरोध घटना का आह्वान करेगा? – WimmDeveloper
@ctTag नहीं, यह नहीं होगा। अभी जांच की गई लेकिन मुझे अभी एहसास हुआ है कि http विधियों के लिए '.take (1) ' – WimmDeveloper