मेरे एंगुलर 2-टाइपस्क्रिप्ट ऐप में, मैं केवल समानांतर HTTP कॉल किए जाने के बाद केवल एक पर्यवेक्षक लौटने के लिए फोर्कजोइन का उपयोग कर रहा हूं।फोर्कजोइन द्वारा लौटाए गए अवलोकन से सदस्यता कैसे प्राप्त करें?
अंक: सदस्यता कॉलबैक अनिश्चित काल के लिए निष्पादित किया जा रहा रखता है
यहाँ मेरी कोड है:
http.service
import {Http} from "@angular/http";
constructor (private _http: HTTP) {}
makeGetRequest(....) {
return this._http.get(URL)
.map (res => res.json)
.toPromise();
my.service
import {Observable} from "rxjs/Observable";
import {HttpService} from "http.service"
constructor (private _httpService: HttpService) {}
myMethod(): Observable<any[]> {
return Observable.forkJoin(
this._httpService.makeGetRequest(
URL1
),
this._httpService.makeGetRequest(
URL2
)
)
}
my.component
import MyService from "my.service";
import Subscription from "rxjs";
constructor (private _service: MyService) {}
mySub: Subscription;
ngOnInit() {
this.mySub = this._service.myMethod.subscribe(data => {
data.forEach(console.log(data));
this.mySub.unsubscribe();
}
}
मैं क्या करने की कोशिश की (एक ही मुद्दा):
- वापसी बल्कि एक वादा
- my.component उपयोग की तुलना में Http.service में एक नमूदार प्रथम() सदस्यता लें() सदस्यता लें()
- इसे डाल दें। mySub.unsubscribe(); बल्कि सदस्यता ले कॉलबैक अंदर से ngOnInit के अंत (भी setTimeout (() => के साथ ....))
'सदस्यता कॉलबैक अनिश्चित काल तक निष्पादित किया जा रहा है' के साथ आपका क्या मतलब है? – Picci
सवाल समझ में नहीं आता है। forkJoin से * पूरा * observables परिणाम जुड़ जाता है और सदस्यता रद्द कर दी नहीं होना चाहिए, क्योंकि यह एक भी महत्व है। आप के साथ * अनिश्चित काल के लिए क्रियान्वित किया जा रहा है, तो मुसीबतों *, कृपया, प्रदान करते हैं एक [MCVE] (http://stackoverflow.com/help/mcve) है जो आपकी समस्या – estus
को दोहराने कर सकते हैं @estus तुम सही हो। जाहिरा तौर पर इस वजह से सदस्यता दो बार instantiated किया गया था और इस मुद्दे की वजह से हो रहा था। इस सवाल का जवाब के लिए स्वतंत्र महसूस, मैं इसे स्वीकार करता हूँ;) – dragonmnl