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;
    });
  })
)