我正在寻找解决方案,但无法实现。
async processMAC(macs){
let datos = [];
for(let x in macs){
await this.ipdataService.getMacsSaData(macs[x]).subscribe(data =>{
datos.push(data)
}
)}
return datos;
}
this.processMAC(macs).then(result => {//I want to work with result but it is undefined}
答案 0 :(得分:0)
如果您使用的是承诺
async processMAC(macs){
let datos = [];
for(let x in macs){
datos.push(await this.ipdataService.getMacsSaData(macs[x])
)}
return datos;
}
或者如果您想并行执行getMacsSaData
function processMAC(macs){
return Promise.all(macs.map(mac => this.ipdataService.getMacsSaData(mac)))
}
答案 1 :(得分:0)
很奇怪,以为示例代码段中可能存在一些错误,不确定是否可以使用:
let macsSaData = await this.ipdataService.getMacsSaData(macs[x]);
macsSaData.subscribe(data => {
datos.push(data)
}
还可以在回调中放置一个断点,以查看是否已将正确的数据推入数组。