Link Search Menu Expand Document

Promessas

As promessas são objetos usados para o processamento assíncrono. Uma Promise representa um valor que pode estar disponível agora, no futuro ou nunca. - Mozilla

É utilizado quando uma função pode ter um retorno positivo ou negativo e precisam ser tratadas de forma separadas. Além de que é utilizada obviamente para funções assínconas.

let batata = new Promise(async (resolve, reject) => {
    //..
    // função que resolve algo e ativa a próxima linha
    const algo = await facaAlgo()

    if(algo == 'Deu bom'){
        resolve('Retorna algo aqui dentro pra ser usado la fora')
    }else{
        reject('Retorna um erro ou elemento para ser usado fora')
    }
})

batata.then(element => console.log(element)).catch(element => console.log(element))

Promise.All

Em momentos específicos, será necessário aguardar que todas as promessas sejam completadas antes de dar seguimento no código, para isso, passa-se todas as promessas para dentro da Promise.all e o retorno será disparado após todas terminarem.

Promise.all([promise1, promise2, promise3]).then(valores => console.log(valores))