Skip to content

Instantly share code, notes, and snippets.

View khaosdoctor's full-sized avatar
💎
Just do things

Lucas Santos khaosdoctor

💎
Just do things
View GitHub Profile
const p1 = Promise.race([
new Promise(resolve => setTimeout(resolve, 4000)),
new Promise((resolve, reject) => setTimeout(reject, 8000))
])
const p2 = Promise.race([
p1,
new Promise(resolve => setTimeout(resolve, 6000)),
new Promise(resolve => setTimeout(resolve, 10000)),
new Promise((resolve, reject) => setTimeout(reject, 2000))
Promise.all([
new Promise(resolve => setTimeout(() => resolve([]), 5500)),
new Promise((resolve, reject) => setTimeout(() => reject([1]), 3000)),
new Promise(resolve => setTimeout(() => resolve([1,2]), 2200))
])
.then(results => results.length)
.then(c => console.info(c))
.catch(err => console.error(err))
Promise.all([
new Promise(resolve => setTimeout(() => resolve([]), 5500)),
new Promise(resolve => setTimeout(() => resolve([1]), 3000)),
new Promise(resolve => setTimeout(() => resolve([1,2]), 2200))
])
.then(results => results.length)
.then(c => console.info(c))
.catch(err => console.error(err))
Promise.all([
new Promise(resolve => setTimeout(resolve, 1500)),
new Promise(resolve => setTimeout(resolve, 900)),
new Promise(resolve => setTimeout(resolve, 2200))
])
.then(results => results.length.b.c)
.then(c => console.info(c))
.catch(err => console.error(err))
var p = Promise.resolve()
.then(data => new Promise(function (resolve, reject) {
setTimeout(Math.random() > 0.5 ? resolve : reject, 1000)
}))
p.then(data => console.log('yay'))
p.catch(data => console.log('ops'))
fetch('https://twitter.com/_staticvoid')
.then((response) => {
if (status === 200) return fetch('http://outrosite.com.br')
})
.then((response) => console.log(response.statusText))
const p = new Promise(function (resolve, reject) {
setTimeout(() => resolve(100), 2000) // Vai resolver com o valor 100 após 2s
})
// Criamos o handler, após 2s ele vai printar "100"
p.then((resultado) => console.log(resultado))
// Depois de 4s vamos adicionar um outro handler
// Este handler multiplica o valor retornado por 20
setTimeout(() => p.then(result => console.log(result * 20)), 4000) // Vamos ter uma saída "2000"
const p = new Promise((resolve, reject) => {
if (Math.random() > 0.5) resolve('yay')
reject('no')
})
p.then(console.log)
.catch(console.error)
.finally(() => console.log('Eu sempre sou executado')
const p = new Promise((resolve, reject) => {
if (Math.random() > 0.5) resolve('yay')
reject('no')
})
p.catch(function erro1 (err) { console.error('Eu pego todos os erros dessa promise'); return 'Error'; })
p
.then(function acao1 (res) { console.log(`Estou rejeitando o valor, o catch a seguir deve tratar`); throw new Error('Erro'); })
.catch(function erro2 (rej) { console.error('Eu pego somente os erros que aconteceram até a ação 1') })
const p = new Promise((resolve, reject) => {
if (Math.random() > 0.5) resolve('yay')
reject('no')
})
// Veja que estamos definindo o catch diretamente em p
p.catch(function erro1 (err) { console.error('Primeiro catch'); return 'Error'; })
p.catch(function erro (rej) { console.error(rej) })
// Estamos definindo as chamadas dos then's também diretamente em p