Blog / Javascript

Promise Race - Qual promise resolve/rejeita primeiro

TTulio Faria 26 de set. de 2017 1 min de leitura
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:

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!

T
Escrito por
Tulio Faria

Mestre em Sistemas de Informação pela USP e criador do DevPleno. Iniciou sua carreira como professor com apenas 18 anos em um curso técnico, foram 11 anos em sala de aula formando desenvolvedores fullstack no sul de Minas Gerais.

JavascriptFundamentos
Compartilhar X LinkedIn
Continue lendo

Insights relacionados