Tenho usado os recursos ECMAScript 6 e ECMAScript 7 (graças ao Babel) em meus aplicativos - tanto móveis quanto web.
O primeiro passo, obviamente, foi o ECMAScript 6 níveis. Aprendi muitos padrões assíncronos, as promessas (que são realmente promissoras), geradores (não tenho certeza por que o símbolo *), etc. Destes, as promessas serviram muito bem ao meu propósito. E tenho usado bastante em meus aplicativos.
Aqui está um exemplo / pseudocódigo de como implementei uma promessa básica
var myPromise = new Promise(
function (resolve,reject) {
var x = MyDataStore(myObj);
resolve(x);
});
myPromise.then(
function (x) {
init(x);
});
Com o passar do tempo, descobri os recursos do ECMAScript 7, sendo um deles palavras ASYNC
- AWAIT
chave / funções. Juntos, eles fazem grandes maravilhas. Comecei a substituir algumas das minhas promessas por async & await
. Eles parecem agregar grande valor ao estilo de programação.
Novamente, aqui está um pseudocódigo de como minha função assíncrona, await se parece com-
async function myAsyncFunction (myObj) {
var x = new MyDataStore(myObj);
return await x.init();
}
var returnVal = await myAsyncFunction(obj);
Deixando os erros de sintaxe (se houver) de lado, ambos fazem exatamente a mesma coisa, é o que eu sinto. Quase fui capaz de substituir a maioria das minhas promessas com async, espera.
Por que é assíncrono, esperar necessário quando as promessas fazem um trabalho semelhante?
O async, espera resolve um problema maior? Ou era apenas uma solução diferente para o inferno de callback?
Como disse anteriormente, estou apto a usar promessas e assíncrono, aguardar para resolver o mesmo problema. Existe algo específico que o async espera resolvido?
Notas Adicionais:
Tenho usado o assíncrono, espera e promete em meus projetos React e módulos Node.js. O React, em especial, se antecipou e adotou muitos recursos do ECMAScript 6 e ECMAScript 7.