RxJs:如何返回可观察的<;T>;从可观察的角度<;T[]>;?
我正在调用一个返回列表的web服务。我想在一个方法中返回该列表中的一项。本质上,当某个函数请求CollectorSueBase的实例时,我希望检索所有实例,缓存它们并返回请求的实例。但我不知道怎么做。 这是我的密码:RxJs:如何返回可观察的<;T>;从可观察的角度<;T[]>;?,rxjs,observable,Rxjs,Observable,我正在调用一个返回列表的web服务。我想在一个方法中返回该列表中的一项。本质上,当某个函数请求CollectorSueBase的实例时,我希望检索所有实例,缓存它们并返回请求的实例。但我不知道怎么做。 这是我的密码: public getByID(collectorID: string, id: string): Observable<CollectorIssueBase> { return this.getAllMinimized(collectorID).pipe(
public getByID(collectorID: string, id: string): Observable<CollectorIssueBase> {
return this.getAllMinimized(collectorID).pipe(
single(items => {
var item = items.find(i => i.ID == id);
return item;
})
);
}
公共getByID(collectorID:string,id:string):可观察{
返回此.getAllMinimized(collectorID).pipe(
单个(项目=>{
var item=items.find(i=>i.ID==ID);
退货项目;
})
);
}
那么我做错了什么呢?“single”似乎是正确的运算符…我用错了吗?single callback从每个可观察的勾号中提取
CollectoriseValue[]
形式。如果要更改CollectoriseValue[]
到collectorisuevalue
我建议使用filter和map。filter将过滤空数组,map将collectorisuevalue
的非空数组转换为collectorisuevalue
e、 g:
.pipe(
过滤器(arr=>arr.length>0),
映射(arr=>arr.find(…),