Я делаю вызов api и ожидаю от него ответа, который может быть передан на второй вызов api, но я получаю сообщение об ошибке
ОШИБКА TypeError: this.helperService.getPointIdbyTags (...) [0] .pipe не является функцией
в строке .pipe (switchMap ((resarray: any) => {
Код TS
someFunction(floor){
floor.entities.forEach(element => {
let desiredTempForZone;
this.getCurrentValue(element.name).subscribe((des) =>
{
currentTempForZone = des
});
console.log(currentTempForZone);
})
}
getCurrentValue(eleName){
let roomObj = this.getRoomObj(eleName);
let equipRef = roomObj.map(equip => equip.entities.filter(entity => entity.entities.length > 0)[0])[0];
return this.helperService.getPointIdbyTags(this.buildings, ['current',
'temp'], equipRef.referenceIDs.room)[0]
.pipe(switchMap((resarray:any)=>{
const res = resarray[0]
return this.siteService.getHisPointData(res, 'current')
.pipe(
map(this.helperService.stripHaystackTypeMapping),
)
}));
}
А потом я пытаюсь передать это
switchMap((resarray:any)=>{
const res = resarray[0]
return this.siteService.getHisPointData(res, 'current')
pipe
в массиве javascript. Вы можете использоватьpipe
только наблюдаемые объекты, попробуйте вместо этого:getCurrentValue(eleName){ //.. return this.helperService.getPointIdbyTags(this.buildings, ['current', 'temp'], equipRef.referenceIDs.room) .pipe(switchMap((resarray:any)=>{ //... })); }
- person mickdev   schedule 30.09.2019pipe
сswitchMap
.switchMap
используется для цепочки наблюдаемых, и вы, очевидно, получаете не наблюдаемое изgetPointIdbyTags
, а массив или строку. Так что просто передайте этот массив или строку вthis.siteService.getHisPointData
. - person frido   schedule 01.10.2019