Ho già utilizzato le funzionalità ECMAScript 6 ed ECMAScript 7 (grazie a Babel) nelle mie applicazioni, sia mobili che web.
Il primo passo ovviamente è stato quello di ECMAScript 6 livelli. Ho imparato molti schemi asincroni, le promesse (che sono davvero promettenti), i generatori (non so perché il simbolo *), ecc. Da questi, le promesse si adattavano abbastanza bene al mio scopo. E li ho usati parecchio nelle mie applicazioni.
Ecco un esempio / pseudocodice di come ho implementato una promessa di base-
var myPromise = new Promise(
function (resolve,reject) {
var x = MyDataStore(myObj);
resolve(x);
});
myPromise.then(
function (x) {
init(x);
});
Col passare del tempo, mi sono imbattuto nelle funzionalità di ECMAScript 7 e una di queste è ASYNC
e AWAIT
parole chiave / funzioni. Questi insieme fanno grandi meraviglie. Ho iniziato a sostituire alcune delle mie promesse con async & await
. Sembrano aggiungere un grande valore allo stile di programmazione.
Di nuovo, ecco uno pseudocodice di come appare la mia funzione async, wait-
async function myAsyncFunction (myObj) {
var x = new MyDataStore(myObj);
return await x.init();
}
var returnVal = await myAsyncFunction(obj);
Tenendo da parte gli errori di sintassi (se presenti), entrambi fanno esattamente la stessa cosa, è quello che sento. Sono quasi riuscito a sostituire la maggior parte delle mie promesse con async, attende.
Perché è necessario async, wait quando le promesse fanno un lavoro simile?
Async, attende risolve un problema più grande? O era solo una soluzione diversa per richiamare l'inferno?
Come ho detto prima, sono in grado di usare promesse e asincrono, aspetto di risolvere lo stesso problema. C'è qualcosa di specifico che l'asincronia attende risolto?
Note aggiuntive:
Ho utilizzato ampiamente async, attende e promette nei miei progetti React e nei moduli Node.js. React in particolare è stato un early bird e ha adottato molte funzionalità ECMAScript 6 ed ECMAScript 7.