将 {number, Observable<string>} 转换为 Observable<number, string>
Convert {number, Observable<string>} to Observable<number, string>
我想转换类型为
的对象数组
{
id: number,
data: Observable<string>
}
到
类型的对象数组
Observable<{id: number, data: string}>
尽可能只使用 RxJS 运算符。
如果我没看错的话,应该是这样的:
const subject = new Subject<string>();
// Dummy array
const array = [
{
id: 1,
data: of("smthing")
}, {
id: 2,
data: of("smthingelse")
}, {
id: 3,
data: subject.asObservable()
}
]
// Function that maps {id: number, data: Observable<string>} into Observable<{id: number, data: string}>
const mapTo = (array) => array.map(item => item.data.pipe(map(data => ({...item, data}))));
const mappedArray = mapTo(array);
我想转换类型为
的对象数组{
id: number,
data: Observable<string>
}
到
类型的对象数组Observable<{id: number, data: string}>
尽可能只使用 RxJS 运算符。
如果我没看错的话,应该是这样的:
const subject = new Subject<string>();
// Dummy array
const array = [
{
id: 1,
data: of("smthing")
}, {
id: 2,
data: of("smthingelse")
}, {
id: 3,
data: subject.asObservable()
}
]
// Function that maps {id: number, data: Observable<string>} into Observable<{id: number, data: string}>
const mapTo = (array) => array.map(item => item.data.pipe(map(data => ({...item, data}))));
const mappedArray = mapTo(array);