Retorno de função com async await
16/01/2021
0
Boa tarde devs, estou estudando sobre JS com Node e Express. estou desenvolvendo uma aplicação que ira consultar dados do auxilio emergencial através da API publica disponibilizada pelo GOV.
Tenho uma função que retorna os dados JSON de um determinado CPF, ela funciona normal se passado somente 1 CPF.
Quando tento chamar essa funçao atreves de outra função, ela somente retorna um erro devido ao AWAIT.
função que faz a consulta na api:
async function getConsultaBeneficiario(data) {
var obj = [];
try {
var url = `http://www.transparencia.gov.br/api-de-dados/auxilio-emergencial-por-cpf-ou-nis?codigoBeneficiario=${data.cpf}&pagina=1`;
var opt = {
headers: { 'chave-api-dados': 'minhaChave' },
};
const response = await axios.get(url, opt);
if (response.data == '' || response.data == null) {
obj = {
cpf: `${data.cpf}`,
nome: `${data.nome}`,
Message: 'sem informação',
};
return obj;
}
obj = response.data;
return obj;
} catch (error) {
console.log(
'Error - erro na consulta do CPF - function getConsultaBeneficiario(cpf)'
);
console.log(error);
}
}
NESTA FUNÇÃO EU FAÇO A CHAMADA A FUNÇÃO ACIMA, PASSANDO ATRAVES DE LOOP, VARIOS CPFs PARA CONSULTA:
async function getListaBeneficioJson() {
var listaBenef = [];
var jsonBenef = `$/json/file.json`;
var data = [];
try {
//le o arquivo q contem os CPFs para consultar na API
var benef = JSON.parse(fs.readFileSync(jsonBenef, 'utf-8'));
// passamos para a função q faz a consulta na API os CPFs
var resut = benef.map((item) => {
console.log('chamando funcao getConsultaBeneficiario');
data.push(await getConsultaBeneficiario(item));
});
} catch (error) {
console.log(error);
}
return listaBenef;
}
Tenho uma função que retorna os dados JSON de um determinado CPF, ela funciona normal se passado somente 1 CPF.
Quando tento chamar essa funçao atreves de outra função, ela somente retorna um erro devido ao AWAIT.
função que faz a consulta na api:
async function getConsultaBeneficiario(data) {
var obj = [];
try {
var url = `http://www.transparencia.gov.br/api-de-dados/auxilio-emergencial-por-cpf-ou-nis?codigoBeneficiario=${data.cpf}&pagina=1`;
var opt = {
headers: { 'chave-api-dados': 'minhaChave' },
};
const response = await axios.get(url, opt);
if (response.data == '' || response.data == null) {
obj = {
cpf: `${data.cpf}`,
nome: `${data.nome}`,
Message: 'sem informação',
};
return obj;
}
obj = response.data;
return obj;
} catch (error) {
console.log(
'Error - erro na consulta do CPF - function getConsultaBeneficiario(cpf)'
);
console.log(error);
}
}
NESTA FUNÇÃO EU FAÇO A CHAMADA A FUNÇÃO ACIMA, PASSANDO ATRAVES DE LOOP, VARIOS CPFs PARA CONSULTA:
async function getListaBeneficioJson() {
var listaBenef = [];
var jsonBenef = `$/json/file.json`;
var data = [];
try {
//le o arquivo q contem os CPFs para consultar na API
var benef = JSON.parse(fs.readFileSync(jsonBenef, 'utf-8'));
// passamos para a função q faz a consulta na API os CPFs
var resut = benef.map((item) => {
console.log('chamando funcao getConsultaBeneficiario');
data.push(await getConsultaBeneficiario(item));
});
} catch (error) {
console.log(error);
}
return listaBenef;
}
Jederson Santana
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)