RxJS:通过 http 从复杂 json 中提取值数组

RxJS: Extracting an array of values from complex json via http

Angular 10

(简体)

我有一个 http 获取 returns 一个国家和该国家/地区的州列表:

   {"id":1,
    "countryMeta": 
        {"statesList": 
             [
               {"name":"AB","value":"AB"},
               {"name":"CA","value":"CA"},
             ]}
     }

我试图从此对象中获取状态列表并将其放入 NameValue 数组中,但我只得到 1 个状态并且它不是数组。 switchMap 不应该这样做吗?

    states$ = this.myHttpService.get().pipe(switchMap((x) => x.countryMeta.statesList));

然后消耗:

*ngFor="let state of states$ | async"

我认为你需要map

import { map } from 'rxjs/operators';
states$ = this.myHttpService.get().pipe(map((x) => x.countryMeta.statesList));

switchMap 切换到一个新的 observable,map 转换当前的 observable。