async / await возвращает неопределенное значение - PullRequest
0 голосов
/ 16 ноября 2018

Я искал решение, но не смог его реализовать.

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}

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Странно, хотя в фрагменте кода примера могут быть некоторые ошибки, не уверен, сработает ли это:

let macsSaData = await this.ipdataService.getMacsSaData(macs[x]);
macsSaData.subscribe(data => { 
    datos.push(data)
}

Может также быть в состоянии поставить точку останова в обратном вызове, проверяя, были ли правильные данные помещены в массив.

0 голосов
/ 16 ноября 2018

Если вы используете Обещания

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))) 
}
...