Получить один элемент каждого массива и проверить условие с обоими - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть следующее с использованием Typescript:

private baskets$: BehaviorSubjectBasket[]> = new BehaviorSubject<Basket[]>([]);

private products$: BehaviorSubject<Product[]> = new BehaviorSubject<Product[]>([]);

Учитывая BasketId и ProductId Мне нужно получить Basket и Product и проверить условие с обоими:

result: Observable<boolean> = this.baskets$.asObservable().pipe(
    map(baskets => baskets.find(x => x.basketId === basketId)),
    map(basket => Check condition with basket and product);

Моя проблема в том, как получить продукт и использовать его в состоянии вместе с корзиной.

1 Ответ

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

Вы можете сделать оператор объединения следующим образом:

result: Observable<boolean> = combineLatest(this.baskets$.asObservable(),
                                            this.products$.asObservable(),
                                            ).pipe(
                                 map(([baskets, products]) => /*... do what you need here */),
                               );

Мне нравится combineLatest, но есть также forkJoin, zip и др. c. с небольшими вариациями.

...