Używałem już funkcji ECMAScript 6 i ECMAScript 7 (dzięki Babel) w moich aplikacjach - zarówno mobilnych, jak i internetowych.
Pierwszym krokiem było oczywiście przejście na poziomy ECMAScript 6. Nauczyłem się wielu wzorców asynchronicznych, obietnic (które są naprawdę obiecujące), generatorów (nie wiem, dlaczego symbol *) itd. Z tego obietnice całkiem dobrze pasowały do mojego celu. Używam ich dość często w moich aplikacjach.
Oto przykład / pseudokod pokazujący, jak zaimplementowałem podstawową obietnicę-
var myPromise = new Promise(
function (resolve,reject) {
var x = MyDataStore(myObj);
resolve(x);
});
myPromise.then(
function (x) {
init(x);
});
W miarę upływu czasu, natknąłem ECMAScript 7 możliwości, a jedną z nich jest ASYNC
i AWAIT
słowa kluczowe / funkcje. Te w połączeniu czynią wielkie cuda. Zacząłem zastępować niektóre obietnice async & await
. Wydaje się, że dodają wielką wartość do stylu programowania.
Ponownie, oto pseudokod pokazujący, jak wygląda moja funkcja async, await-
async function myAsyncFunction (myObj) {
var x = new MyDataStore(myObj);
return await x.init();
}
var returnVal = await myAsyncFunction(obj);
Pomijając błędy składniowe (jeśli występują), obaj robią dokładnie to samo, co ja czuję. Prawie udało mi się zastąpić większość moich obietnic asynchronicznym, czeka.
Dlaczego asynchroniczne oczekiwanie jest potrzebne, gdy obietnice mają podobną pracę?
Czy async, w oczekiwaniu na rozwiązanie większego problemu? A może było to po prostu inne rozwiązanie do piekła zwrotnego?
Jak powiedziałem wcześniej, jestem w stanie korzystać z obietnic i asynchronii, czekam na rozwiązanie tego samego problemu. Czy jest coś konkretnego, co czeka na rozwiązanie async?
Dodatkowe uwagi:
W moich projektach React i modułach Node.js intensywnie korzystałem z asynchronii, oczekiwań i obietnic. Szczególnie React byli wczesnym ptaszkiem i przyjęli wiele funkcji ECMAScript 6 i ECMAScript 7.