Странно, хотя в фрагменте кода примера могут быть некоторые ошибки, не уверен, сработает ли это:
let macsSaData = await this.ipdataService.getMacsSaData(macs[x]);
macsSaData.subscribe(data => {
datos.push(data)
}
Может также быть в состоянии поставить точку останова в обратном вызове, проверяя, были ли правильные данные помещены в массив.