У меня есть следующий код, который возвращает наблюдаемый, он проверяет, является ли this.data действительным JSON, в противном случае он пытается извлечь его из url. Извлечение и все работает.rxjs Наблюдаемый .map не выполняется
load():Observable<IStandardListOutput[]> {
return Observable.create(observer => {
if (this.needsFetch) {
var data;
this.http.get(this.data)
.map(res => {
var result = res.text();
// console.log(result);
try {
data = JSON.parse(result)
} catch (e) {
return Observable.of([{error:"ERROR LOADING JSON: " + this.data}]);
}
return data;
}).subscribe(res => {
observer.next(this._parse(res));
observer.complete();
});
}else {
observer.next(this._parse(this.data));
observer.complete();
}
});
}
Сейчас на карте/подписываться часть наблюдателя я следующее:
let observable$ = this.loader.load(); // <-- load method above
observable$.map(res => {
console.warn ("IN MAP: " + JSON.stringify(res));
});
observable$.subscribe(res=> {
console.log("IN SUB: " + JSON.stringify(res));
},
err => {
console.log(JSON.stringify(err))
},
() => {
console.info("COMPLETE")
}
);
То, что я вижу в выводе/консоли только "IN SUB" (подписаться) и «ПОЛНАЯ». Функция console.warn в .map никогда не выполняется.
Любая помощь высоко ценится, заранее спасибо
Chech здесь http://stackoverflow.com/questions/34671715/angular2-http-get-map-subscribe-and-observable-pattern-basic-understan –