Skip to content

Instantly share code, notes, and snippets.

@flaki
Last active August 29, 2015 13:57
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 flaki/96fd91dfdd5276f84cdd to your computer and use it in GitHub Desktop.
Save flaki/96fd91dfdd5276f84cdd to your computer and use it in GitHub Desktop.
Firefox OS Workshop, UStream HQ, Budapest, 2014.03.27. - presentation by Flaki about ES6 & Promises

Promise-ok és ES6 Firefox OS-en

Flaki előadása a Promise-ok és más ES6-feature-ök használatáról Firefox OS alkalmazásokban.

Firefox OS Workshop, 2014. március 27, UStream HQ, Budapest.

Promise-ok

A promise-ok az aszinkron kódok végrehajtását segítő objektumok. Tartalmuk egyfajta "ígéret" egy, az objektum létrejöttekor még nem rendelkezésre álló értéket jelző "token"-t szimbolizálnak.

Bevezető olvasnivaló

Nagyon sok hasznos cikk van az interneten a Promise-ok hasznával, használatával kapcsolatban. Érdemes őket olvasgatni, ismerkedni az új technikákkal, ugyanis az ES6 érkezése után a promise-ok idővel teljes jogú objektummá formálódnak (csakúgy mint a function-ök), így egyre többet fogtok találkozni a koncepcióval:

Promise-ok natív támogatása böngészőkben

A legújabb Firefox és Chrome verziók már tartalmazzák, alapból engedélyezve a Promise-ok támogatását, csakúgy mint a node.js szerver 11-es verziója.

Promise-ok Firefox OS-en

Firefox OS-en (alkalmazásfejlesztők számára) a 30-as Gecko motor verziótól kezdődően lesznek elérhetők a natív Promise-ok a rendszerben - ez a Firefox OS 1.4-es verzióját jelenti, ami várhatóan júniusban jelenik meg. Addigis használjátok a core/promise.js-t, vagy libeket! Egy saját Firefox OS app, ami promise-okat használ, a Check-in Fox - a kód kissé spagetti, de nézelődhettek ha megjött a kedvetek a promise-ok használatához, és jól bemutatja hogy egy ilyen aszinkron környezetben (távoli API-val kommunikáló online APP) hogyan mutatják meg a promise-ok az absztrakció által igazán erős, hasznos oldalukat.

promise.js

A mozilla által bővítményekben (AddOn SDK) és a Firefox OS rendszeralkalmazásaiban használt Promise-implementációja.

ES6 Promise API-polyfill

Jake Archibald elkészítette az rsvp.js promise-library legutóbbi, ES6 Promise API-nak megfelelő változatát, így ezzel a libbel gyakorlatilag bármelyik közepesen modern böngészőben használhatjuk az ES6 Promise API-nak megfelelő hívásokat, anélkül, hogy a böngészőnek natívan támogatnia kellene az API-t.

Promise library-k:

Promises/A+ specifikációnak megfelelő libek, amikkel már ma is használhatók a Promise-ok:

jQuery promise-ok

A jQuery promise implementációja nem (teljesen) felel meg a Promises/A+ szabványnak. 1.9 verzió előtt egyáltalán nem (.then()-ekkel való promisok chain-elése nem lehetséges), ennek javítását követően 1.9-es verzió felett pedig a hibakezelés hiányosságai miatt. Megoldás? Használjatok valamilyen lib-et (pl.: Q).

Az ECMAScript 6-ról

AZ ES6 (ECMAScript 6, ES.next) a JavaScript nyelv következő evolúciójának kódneve. A TC39 nevű, érintett felekből álló csapat áll mögötte (böngésző-fejlesztők küldöttei és más, a web fejlődésében érdekelt felek alkotják), és konszenzussal hoznak döntést a nyelv jövőjével kapcsolatban. A csapat meghívásos tagja Domenic Denicola, aki a Promises/A+ specifikáció, és az ES6 Promise-ok karbantartója is egy személyben, ezen kívül ő tartja karban az es-discuss levelezőlista összefoglalóit tweetelő @esdiscuss twitter-csatornát.

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