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…
por: Tulio Faria
Categoria: DicasVideo-Tutorial
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!