rxjs - 组合 2 个 Observables rxjs

标签 rxjs observable

接下来如何使用 2 个组合 Observables 的返回值?

在创建 map 之前,我需要先获取设置和当前位置。

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(() => { [...] })

最佳答案

使用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);
    });

关于rxjs - 组合 2 个 Observables rxjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46358009/

相关文章:

firebase - 'FirebaseListObservable<any[]> 类型不存在属性 ‘indexOf’

arrays - 如何在 RxSwift 中使可变字典变得可观察

javascript - RxJS Observable fromPromise 和 CLI 应用程序中的交互式循环

javascript - 使用 RxJS Observable 流式传输 JSON

angular - 即使实际值相同,状态更改时组件也会重新渲染

Angular - RxJS ConcatMap - 从两个服务调用返回数据

typescript - Observable.fromPromise 在单元测试期间为空

angular - 非平凡 Angular 组件中 RxJS 的最佳实践

swift - 如何使用发布主题来观察变量的值?

angular - 如何订阅一次事件发射器?