Promise Race - Qual promise resolve/rejeita primeiro

Hoje quero mostrar uma funcionalidade que chamada Promise.race. Ela vai receber uma lista de promises no JavaScript e ele vai retornar apenas uma dessas promise: a que rejeitar ou resolver primeiro. Vamos criar uma função que é uma promise: Ao rodar esse código, ele retorna opa depois de 100ms. Agora vamos criar uma lista…

Promise Race - Qual promise resolve/rejeita primeiro


por: Tulio Faria

Categoria: DicasVideo-Tutorial
Thumbnail

Hoje quero mostrar uma funcionalidade que chamada Promise.race. Ela vai receber uma lista de promises no JavaScript e ele vai retornar apenas uma dessas promise: a que rejeitar ou resolver primeiro. Vamos criar uma função que é uma promise:

const p = (time, name) => {
    return new Promise((resolve, reject) => {
        setTimeOut(() => resolve(time + ‘ ‘+ name), time)
    })
}
p(100, ‘opa’).then( e => console.log(e))

Ao rodar esse código, ele retorna opa depois de 100ms. Agora vamos criar uma lista chamada de OS, e dentro dela faremos uma lista de promises:

const os = \[
    P(100, ‘opa’),
    P(200, ‘opa2’)
\]
Promise.race(os).then( e=> console.log(e))

Ao rodar, vai trazer a primeira promise, isso não quer dizer que ele pare a operação do outro. Ele continua executando, porém não retorna para o resultado, mesmo se rejeitarmos. Obviamente é o contrário do Promise.all, que é quando retornamos todos:

Promise.all(os).then( e => console.log(e))

Assim vamos ter todos os retornos, ao contrário do race.

Deixe suas dúvidas e sugestões nos comentários. Curta o DevPleno no Facebook, se inscreva no canal no YouTube e cadastre seu e-mail para não perder as atualizações. Abraço!