[RxJSv& Javascript] forkJoin (reactive Promise.all) & Map

forkJoin: When all observables complete emit the last value from each.

productMap: Map<number, IProduct>

  ngOnInit() {
    const cart = this.stockService.getCartItems();
    const products = this.stockService.getProducts();

    Observable.forkJoin(
      cart,
      products
    ).subscribe(([cart, products]: [Item[], IProduct[]]) => {
      const myMap = products.map<[number, IProduct]>((p) => {
        return [p.id, p];  //[0, obj]
      });
      this.productMap = new Map<number, IProduct>(myMap); // {0: obj}
      this.products = products;

      cart.forEach((c) => {
        this.addStock(c);
      })
    })
  }
原文地址:https://www.cnblogs.com/Answer1215/p/6597625.html