Async e await são extensões das promises. Quando uma função assíncrona é chamada, ela retorna uma promise. Uma função assíncrona pode conter uma palavra-chave await, que pausa a execução da função e espera pela resolução da promise passada, retomando a execução após a resolução da promise e retornando o valor resolvido. A proposta das funções async/await é simplificar o uso de promises. Assim como promises são similares a callbacks estruturados, as funções async/await são similares à junção de generators com promises. Caso você não conheça o async/await, recomendo que antes de prosseguir, leia este artigo: Entenda o async e await.
Dito isto, vamos ao exercício:
Passo 1:
Crie uma função que após 5 segundos, dobre o resultado do número passado como parâmetro. Essa função deverá retornar uma promise. Use o setTimeOut como temporizador.
O corpo da função abaixo servirá como base para este exercício:
function dobrarEm5Segundos(x) { return new Promise( => { setTimeout(() => { }); }); }
Realizado este passo, podemos seguir adiante:
Passo 2:
Crie uma função assíncrona que irá receber um parâmetro x. Crie três variáveis: a, b e c dentro do corpo da função. Cada uma dessas variáveis receberá um await da função do passo anterior. Você deve passar como parâmetros dessa função os número 10, 20 e 30, respectivamente.
Retorne a soma de todos esses elementos, inclusive o parâmetro da função assíncrona.
async function addAsync(x) { let a; let b; let c; return; }
Para mostrar o resultado no console, utilize o .then():
addAsync().then(() => { console.log(); });
Você pode realizar o download do exercício resolvido aqui:
[download id=”3580″]
Gostou deste exercício? Comente abaixo: