如何在下一个使用2个组合Observable的返回值?
我需要在创建地图之前先获取设置和当前位置。
let trackerObservable = this.tracker.getCurrentPosition();
let settingsObservable = this.user.loadSettings();
Observable.merge(trackerObservable, settingsObservable)
.switchMap((coords: Coordinates, settings: Settings) => {
this.currentCoords = coords;
return this.navigatorMap.createMap(map_id, {
lat: coords.latitude,
lng: coords.longitude
}, settings);
}).subscribe(() => { [...] })
答案 0 :(得分:2)
使用forkJoin
获取两个可观察数据。
Observable
.forkJoin(trackerObservable, settingsObservable)
.map((data: Array<any>) => {
let coords: data[0];
let settings: data[1];
this.currentCoords = coords;
return this.navigatorMap.createMap(map_id, {
lat: coords.latitude,
lng: coords.longitude
}, settings);
});