Передать переменные второй карте в RXJS - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть следующее:

zip(this.baskets$.asObservable(), this.products$.asObservable()).
pipe(
  map(([baskets, products]) => /* get basket and product */),
  map(([basket, product]) => /* use basket and product in condition */)
);

Как вначале Map получить basket и product с заданными basketId и productId?

I знать, как их получить ... Что-то вроде:

let basket = baskets.find(x => x.id == data.basketId);

let product = products.find(x => x.id == data.productId); 

Но как пройти и уметь использовать оба в секунду map:

map(([basket, product]) => /* use basket and product in condition */)

1 Ответ

2 голосов
/ 19 февраля 2020

Вы были почти там:

zip(this.baskets$,this.products$).pipe(
      map(([baskets,products]) => {
        const basket = baskets.find(bskt => bskt.id === this.data.basketId);
        const product = products.find(prdct => prdct.id === this.data.productId);
        return [basket,product];
      }),
      map(([basket,product]) => /*now use them here*/)
    )

Конечно, они могут быть неопределенными на второй карте, если идентификаторы не были найдены.

...