Promise Race - Qual promise resolve/rejeita primeiro

Promise Race - Qual promise resolve/rejeita primeiro

Tulio Faria
Tulio Faria26 de setembro de 2017

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.

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!

Tulio Faria
Autor
Tulio Faria26 de setembro de 2017

Últimas do Blog