Estou fazendo um bot para meu servidor no discord e utilizando a API da Riot, no seguinte código eu pego o Id encriptado do usuário do jogador para que eu possa fazer uma requisição no endpoint dos status ranqueados do jogador, porém ai que tá o problema: eu fiz a primeira função para me retornar o id encriptado para que eu possa usar na segunda função, mas o código está executando as duas funções ao mesmo tempo, tanto que quando eu dou um console log entre as duas funções no id encriptado ele retorna undefined.
Porque as duas funções estão sendo executadas ao mesmo tempo?
I
4 Respostas
L
1 like
Isso pq a função getEncryptedId executa uma requisição http, e essa requisição é feita de forma assíncrona, ou seja, a requisição será enviada, e o restante do código será executado sem esperar a requisição ser finalizada.
Para contornar isso, vc pode fazer uso de async e await. Coloque o async na declaração da função e await na hora de chamar essa função.
Ex.:
async function executarRequisicao() {
return // faz uma requisição http assíncrona
}
const resultado = await executarRequisicao();
D
As duas função são chamadas na função exportada request primeiro você tem que resolver a primeira função para depois resolver a próxima pois a segunda depende da primeira!
Vai ter que mudar a maneira com elas trabalham e utilizar async/await pelo menos na primeira função.
I
Muito obrigado, era isso mesmo, também adicionei o await no fetch pra funcionar certinho.
I
Obrigado
Criado 27 de junho de 2021
Ultima resposta 28 de jun. de 2021
Respostas 4
Participantes 3
