У меня есть угловой сервис, вызывающий API и возвращающий большой объем данных. В этом же вызове GET я делаю некоторую логику, которая подсчитывает, сколько существует каждого типа. У меня простой вопрос: могу ли я отправить эту переменную / число вместе с данными или даже сохранить их в другой переменной и отправить их?
Когда я пытаюсь сохранить их в службе как общедоступную переменную, она не определенакогда я пытаюсь вытянуть его в другой компонент. Я предполагаю, потому что к переменной обращаются, прежде чем на подписку наблюдаемого, но я не знаю, как это исправить?
В приведенном ниже коде _counts - это то, что я пытаюсь вернуть, и это работаетточное ведение журнала внутри метода getPciInfo, но, как я уже сказал, он возвращается как неопределенный где-либо еще. (я пытаюсь передать это число в другой компонент).
Спасибо за любую помощь или совет, который вы можете предложить.
public _counts: any;
getPciInfo(): Observable <Ipcidata[]> {
return this.httpClient.get<Ipcidata[]>('http://dr0-hlp-07/api/PCIMachines')
.pipe(
map(results => {
const sorted = results.sort(( a, b ) => {
const updateDateA = Date.parse(this.datepipe.transform(a.UpdatedDate, 'MM-dd-yyyy'));
const carda = determineCardType(a, this.dateMinusMonth, this.dateMinusTwoWeeks)
const cardb = determineCardType(b, this.dateMinusMonth, this.dateMinusTwoWeeks)
return cardb - carda
});
this._counts = sorted.reduce((acc, cur)=>{
const cardType = determineCardType(cur, this.dateMinusMonth, this.dateMinusTwoWeeks)
switch (cardType) {
case 1:
acc.green += 1;
break;
case 2:
acc.yellow += 1;
break;
case 3:
acc.red += 1;
break;
}
return acc;
}, {
red: 0,
green: 0,
yellow: 0
});
console.log(this._counts)
console.log(this._counts.red)
return sorted;
}