我在 Angular 中有一些复杂的 observable(感谢使用 Akita,我无法更改它),它是对象|
数组、单个对象或未定义的 'ed Observable:Dinosaur
Dinosaur
import { QueryEntity } from "@datorama/akita";
export class DinosaurQuery extends QueryEntity<DinosaurState, Dinosaur> {
activeDinosaurs$ = this.selectActive(); // Type: Observable<Dinosaur[]> | Observable<Dinosaur | undefined>
constructor(protected store: DinosaursStore) {
super(store);
}
}
作为一个可观察的,我想从中得到的是单个对象,或者是数组中的第一个对象,以防它是一个数组。或未定义,如果没有。
export class DinosaurSelection {
// I want singleSelectedDinosaur$ to be of type: Observable<Dinosaur | undefined>
singleSelectedDinosaur$ = this.dinosaurQuery.activeDinosaurs$.pipe(???);
constructor(protected dinosaurQuery: DinosaurQuery) {}
}
我认为一定有一些管道可以做到这一点,但我找不到合适的东西可以同时作用于|
对象和该对象的数组。(或者也许它不能用管道完成,但以另一种方式,这也很好。)