【发布时间】:2019-02-25 08:38:43
【问题描述】:
我有一个 api 调用,它返回带有 Observable<User[]> 的数据(其中用户是
{id:string, status:string}
我想做的是根据状态(活动/非活动)将可观察对象分成两个不同的可观察对象
我用谷歌搜索和 Stackoverflowed,但我能找到的唯一样本只显示单值数组 [1,2,3,4] 等
我尝试将相同的技术应用于对象数组
const foo = this.userApi
.find()
.pipe(partition(item => item.status === 'active'));
希望这会返回 foo[0] 持有活跃用户和 foo[1] 持有非活跃用户
但是,vsCode 编辑器抱怨
[ts]
Argument of type 'UnaryFunction<Observable<User[]>, [Observable<User[]>, Observable<User[]>]>' is not assignable to parameter of type 'OperatorFunction<any, any>'.
Type '[Observable<User[]>, Observable<User[]>]' is not assignable to type 'Observable<any>'.
Property '_isScalar' is missing in type '[Observable<User[]>, Observable<User[]>]'.
[ts] Property 'status' does not exist on type 'User[]'.
any
这意味着item 是一个数组...
我也尝试了groupBy 并遇到了同样的问题
const foo = this.userApi
.find<User>()
.pipe(groupBy(item => item.status));
[ts] Property 'status' does not exist on type 'User[]'
你可能会说,我不是 rxjs 专家,在这一点上碰壁了,希望任何指点
【问题讨论】: