GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Porque as duas funções estão sendo executadas ao mesmo tempo?

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.

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();
1 Curtida

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.

Muito obrigado, era isso mesmo, também adicionei o await no fetch pra funcionar certinho.

Obrigado

//