This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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')) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
fetch('https://twitter.com/_staticvoid') | |
.then((response) => { | |
if (status === 200) return fetch('http://outrosite.com.br') | |
}) | |
.then((response) => console.log(response.statusText)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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') |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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') }) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |