我的第一个 observable 返回一个 Persons 数组。我想用来自第二个 observable 的客户列表更新该数组中的每个人。我怎么做?到目前为止,我有这个:
const json: Person[] = [new Person('Alice'), new Person('Bob')];
const resultsObservable = new Observable<string[]>(subscriber => {
setTimeout(() => {
subscriber.next(['Client1', 'Client2', 'Client3']);
subscriber.complete();
}, 1000);
});
of(json).pipe(
switchMap( dataArray => {
return from(dataArray);
}),
map((x: Person) => {
resultsObservable.subscribe(r => {
x.clients = r;
});
return x;
}),
).subscribe(value => {
console.log(value);
});
}
人员:
export class Person{
name: string;
clients?: string[];
constructor(name: string) {
this.name = name;
}
}
但问题是返回值发生在设置值之前,所以在 person.clients 的最终值是未定义的。我该如何解决?或者有什么更好的方法可以实现我的目标?
答案 0 :(得分:0)
好的,我想我找到了我要找的东西:
entries