在数组的可观察对象中增加单独的值 - RxJS
Augment seperate values in observable of array - RxJS
我已经尝试解决这个问题一段时间了,我想这是一个很常见的问题,但我想做的是增加来自可观察对象的数组中的项目,并且增加发生在可观察的或类似承诺的
所以我想要如下内容:
function augment(person: Person): Observable<PersonWithAddress> {
// does ajax call or something
}
const items$: Observable<Person[]>;
items$
.do(x => {}) // x would be of type Person[]
.flatFlatMap(person => { // person would be of type Person
return augment(person); // this would return an Observable<PersonWithAddress>
})
.subscribe(peopleWithAddresses => { // peopleWithAddresses would be of type PersonWithAddress[]
})
是否有某种类型的运算符,我知道我可以增加或映射从 observable 发出的单个项目到来自带有 flatMap 的 observable 的其他东西,但是是否有类似 flatFlatMap 之类的东西。
你可以使用forkJoin
做你想做的事。
它接受一组可观察对象(或承诺),当所有对象都完成(或解决)时,它会发出一个包含最后发出(或解决)值的数组:
import { Observable } from "rxjs/Observable";
import "rxjs/add/observable/forkJoin";
items$
.flatMap((people: Person[]) => Observable.forkJoin(
people.map(person => augment(person))
))
.subscribe((peopleWithAddresses: PersonWithAddress[]) => {
// ...
});
我已经尝试解决这个问题一段时间了,我想这是一个很常见的问题,但我想做的是增加来自可观察对象的数组中的项目,并且增加发生在可观察的或类似承诺的 所以我想要如下内容:
function augment(person: Person): Observable<PersonWithAddress> {
// does ajax call or something
}
const items$: Observable<Person[]>;
items$
.do(x => {}) // x would be of type Person[]
.flatFlatMap(person => { // person would be of type Person
return augment(person); // this would return an Observable<PersonWithAddress>
})
.subscribe(peopleWithAddresses => { // peopleWithAddresses would be of type PersonWithAddress[]
})
是否有某种类型的运算符,我知道我可以增加或映射从 observable 发出的单个项目到来自带有 flatMap 的 observable 的其他东西,但是是否有类似 flatFlatMap 之类的东西。
你可以使用forkJoin
做你想做的事。
它接受一组可观察对象(或承诺),当所有对象都完成(或解决)时,它会发出一个包含最后发出(或解决)值的数组:
import { Observable } from "rxjs/Observable";
import "rxjs/add/observable/forkJoin";
items$
.flatMap((people: Person[]) => Observable.forkJoin(
people.map(person => augment(person))
))
.subscribe((peopleWithAddresses: PersonWithAddress[]) => {
// ...
});