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.
Z_paUYXjqCI
Assistir vídeo
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