Я пытаюсь преобразовать цепочку обещаний:
this.tradeTypesLogicService.getList().$promise
.then(this.filterTradeTypes)
.then(this.setSelectedTradeType)
в rx js наблюдаемую:
this.tradeTypesLogicService
.getList() //returns observable now
.pipe(mergeMap(this.filterTradeTypes), map(this.setSelectedTradeType))
.subscribe();
protected filterTradeTypes = (tradeTypes: Array<any>) => {
this.tradeTypes = filter(tradeTypes, (trade) => {
if (trade.id === this.mappedItem.tradeTypeId && !trade.isActive) {
trade.label = trade.label + " (inactive)";
return true;
}
return trade.isActive;
});
return this.tradeTypes;
}
public setSelectedTradeType = (tradeTypes): void => {
this.selectedTradeTypeModel = tradeTypes.find(tt => tt.id === this.mappedItem.tradeTypeId);
}
Мне нужно передать массив, который возвращается из filterTradeTypes
в setSelectedTradeType
, и он передает только один элемент из этого массива.