Skip to content

Instantly share code, notes, and snippets.

@michaelfdias
Last active February 16, 2019 01:31
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save michaelfdias/95162f4fb7b4ff5a0a29592a92049390 to your computer and use it in GitHub Desktop.
Save michaelfdias/95162f4fb7b4ff5a0a29592a92049390 to your computer and use it in GitHub Desktop.
// https://medium.com/balta-io/melhorando-suas-promessas-no-javascript-28f81272f5cf
main();
function main() {
funcaoUm()
.then(funcaoDois)
.then(funcaoTres)
.then(funcaoQuatro)
.then(funcaoCinco)
.then(funcaoSeis);
}
function funcaoUm() {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('1');
resolve();
}, 1234);
});
}
function funcaoDois() {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('2');
resolve();
}, 100);
});
}
function funcaoTres() {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('3');
resolve();
}, 1000);
});
}
function funcaoQuatro() {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('4');
resolve();
}, 870);
});
}
function funcaoCinco() {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('5');
resolve();
}, 330);
});
}
function funcaoSeis() {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('6');
resolve();
}, 420);
});
}
@chapzin
Copy link

chapzin commented Feb 15, 2019

Olá Michael,
Existe alguma outra forma de trabalhar dessa forma só que em vez de usar as promises usar async/await?

@clebersonfalk
Copy link

Olá Michael,
Existe alguma outra forma de trabalhar dessa forma só que em vez de usar as promises usar async/await?

Desculpa por responder antes do Michael, é que eu também li o artigo e gostaria de ajudar.

No caso desse exemplo usando async/await acredito que ficaria dessa forma:

async function main() {
    await funcaoUm();
    await funcaoDois();
    await funcaoTres();
    await funcaoQuatro();
    await funcaoCinco();
    await funcaoSeis();
}
...

Observação:

  • A função que engloba as funções assíncronas, no caso main sempre deve ser precedida de async.
  • Já as funções internas assíncronas que queremos um retorno síncrono são precedidos de await.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment