Javascript 如何将数组的可观测值转换为数组,或通过数组的可观测值进行迭代以获得值?
因此,我想从返回的可观察对象中获取一个Javascript 如何将数组的可观测值转换为数组,或通过数组的可观测值进行迭代以获得值?,javascript,rxjs,observable,Javascript,Rxjs,Observable,因此,我想从返回的可观察对象中获取一个id,将其用于另一个服务调用 export class CustomerComponent{ current: Customer; orders: Observable<Order[]>; orderitems: Observable<OrderItem[]>; o: Order[]= []; orderid: number; constructor( private router:Route
id
,将其用于另一个服务调用
export class CustomerComponent{
current: Customer;
orders: Observable<Order[]>;
orderitems: Observable<OrderItem[]>;
o: Order[]= [];
orderid: number;
constructor(
private router:Router,
private vs: AccountverificationService,
private os:OrderService,
private ois:OrderItemService)
{
this.vs.current.subscribe(x=>this.current=x);
}
ngOnInit() {
this.orders = this.os.getOrders(this.current.id).pipe(
map((orderz:Order[]) => this.o = orderz)
);
this.o.forEach((or: Order) => {
this.orderid = or.id;
})
this.orderitems = this.ois.getOrderItems(this.orderid);
}
}
我不确定你想要的最终产品是什么。但总的来说:
- 使用
映射到可观察对象switchMap
- 使用
并行执行多个完整的观察值forkJoin
orders$:可见;
恩戈尼尼特(){
this orders$=this.os.getOrders(this.current.id).pipe(
switchMap((orderz:Order[])=>forkJoin(
//将每个订单映射到一个可观察到的对象,该对象会发出该订单所需的数据
map(o=>this.ois.getOrderItems(o.id.pipe(
//例如,包含订单id和该id的订单项的对象
映射(orderItems=>({orderId:o.id,orderItems}))
))
))
)
}
{{order | json}}
如何使用value的值在html中呈现它们?@nadabtadine最好在html模板中使用AsyncPipe。这是基本的角度。考虑通过学习来学习基础知识。
this.orders = this.os.getOrders(this.current.id).pipe(
tap(orderz => {
orderz.forEach((or :Order)=> {
this.orderid = or.id;
});
})
)