首页 > 解决方案 > 使用哪个 rxjs 运算符?

问题描述

我有一个对象:

let settings = {
    user: {},
    page: {}
}

并且有两个请求:

getUserSettings(): Observer<UserSettings> {
    return http.get();
}

getPageSettings(): Observer<PageSettings> {
    return http.get();
}

我需要将它们都称为独立的,一个结果对另一个结果没有影响,但结果会得到 fullfill object settings

标签: rxjs

解决方案


您可以使用forkjoin来执行此操作。此函数将接受可观察的数组。

import { forkJoin } from 'rxjs';
import { map } from 'rxjs/operators';

forkjoin([getUserSettings(), getPageSettings()])
   .pipe(map(res) => {user: res[0], page: res[1}) // remove this if you don't need the exact setting object as final result
   .subscribe((res) => {
     // settings object
   });

推荐阅读