async/await javascript - entwicklertag...typescript johannesdienst [email protected]...
TRANSCRIPT
![Page 1: Async/Await JavaScript - Entwicklertag...TypeScript JohannesDienst jdienst@multamedio.de JohannesDienst.net Created Date 6/14/2016 7:05:09 PM](https://reader034.vdocuments.site/reader034/viewer/2022042802/5f39ad3b81ae0a47e237a71d/html5/thumbnails/1.jpg)
Async/AwaitJavaScript
Johannes Dienst
![Page 2: Async/Await JavaScript - Entwicklertag...TypeScript JohannesDienst jdienst@multamedio.de JohannesDienst.net Created Date 6/14/2016 7:05:09 PM](https://reader034.vdocuments.site/reader034/viewer/2022042802/5f39ad3b81ae0a47e237a71d/html5/thumbnails/2.jpg)
![Page 3: Async/Await JavaScript - Entwicklertag...TypeScript JohannesDienst jdienst@multamedio.de JohannesDienst.net Created Date 6/14/2016 7:05:09 PM](https://reader034.vdocuments.site/reader034/viewer/2022042802/5f39ad3b81ae0a47e237a71d/html5/thumbnails/3.jpg)
doAsync1
λ
callback
doAsync2
λ
callback
doAsync3
λ
callback
Input
Output
![Page 4: Async/Await JavaScript - Entwicklertag...TypeScript JohannesDienst jdienst@multamedio.de JohannesDienst.net Created Date 6/14/2016 7:05:09 PM](https://reader034.vdocuments.site/reader034/viewer/2022042802/5f39ad3b81ae0a47e237a71d/html5/thumbnails/4.jpg)
3
![Page 5: Async/Await JavaScript - Entwicklertag...TypeScript JohannesDienst jdienst@multamedio.de JohannesDienst.net Created Date 6/14/2016 7:05:09 PM](https://reader034.vdocuments.site/reader034/viewer/2022042802/5f39ad3b81ae0a47e237a71d/html5/thumbnails/5.jpg)
![Page 6: Async/Await JavaScript - Entwicklertag...TypeScript JohannesDienst jdienst@multamedio.de JohannesDienst.net Created Date 6/14/2016 7:05:09 PM](https://reader034.vdocuments.site/reader034/viewer/2022042802/5f39ad3b81ae0a47e237a71d/html5/thumbnails/6.jpg)
Hasta la vista Callback Hell
![Page 7: Async/Await JavaScript - Entwicklertag...TypeScript JohannesDienst jdienst@multamedio.de JohannesDienst.net Created Date 6/14/2016 7:05:09 PM](https://reader034.vdocuments.site/reader034/viewer/2022042802/5f39ad3b81ae0a47e237a71d/html5/thumbnails/7.jpg)
getFoo()
.then((foo) => {
return formatBar(foo);
})
.then((foo) => {
return sendFooToMe(foo);
});
![Page 8: Async/Await JavaScript - Entwicklertag...TypeScript JohannesDienst jdienst@multamedio.de JohannesDienst.net Created Date 6/14/2016 7:05:09 PM](https://reader034.vdocuments.site/reader034/viewer/2022042802/5f39ad3b81ae0a47e237a71d/html5/thumbnails/8.jpg)
7Promise Hell
![Page 9: Async/Await JavaScript - Entwicklertag...TypeScript JohannesDienst jdienst@multamedio.de JohannesDienst.net Created Date 6/14/2016 7:05:09 PM](https://reader034.vdocuments.site/reader034/viewer/2022042802/5f39ad3b81ae0a47e237a71d/html5/thumbnails/9.jpg)
Promises/A+
![Page 10: Async/Await JavaScript - Entwicklertag...TypeScript JohannesDienst jdienst@multamedio.de JohannesDienst.net Created Date 6/14/2016 7:05:09 PM](https://reader034.vdocuments.site/reader034/viewer/2022042802/5f39ad3b81ae0a47e237a71d/html5/thumbnails/10.jpg)
getDatabase()
.then((db) => {
return findAllFoo(db)
.then((foos) => {
return getBar(db)
.then((bar) => {
return pickFoobar(foos, bar);
});
});
});
![Page 11: Async/Await JavaScript - Entwicklertag...TypeScript JohannesDienst jdienst@multamedio.de JohannesDienst.net Created Date 6/14/2016 7:05:09 PM](https://reader034.vdocuments.site/reader034/viewer/2022042802/5f39ad3b81ae0a47e237a71d/html5/thumbnails/11.jpg)
function* dumbGenerator() { yield 1; yield 2; yield 3;}
let gen = dumbGenerator();gen.next()
![Page 12: Async/Await JavaScript - Entwicklertag...TypeScript JohannesDienst jdienst@multamedio.de JohannesDienst.net Created Date 6/14/2016 7:05:09 PM](https://reader034.vdocuments.site/reader034/viewer/2022042802/5f39ad3b81ae0a47e237a71d/html5/thumbnails/12.jpg)
runGenerator( function* main() { yield getPromise(); yield getPromise(); }
);
![Page 13: Async/Await JavaScript - Entwicklertag...TypeScript JohannesDienst jdienst@multamedio.de JohannesDienst.net Created Date 6/14/2016 7:05:09 PM](https://reader034.vdocuments.site/reader034/viewer/2022042802/5f39ad3b81ae0a47e237a71d/html5/thumbnails/13.jpg)
![Page 14: Async/Await JavaScript - Entwicklertag...TypeScript JohannesDienst jdienst@multamedio.de JohannesDienst.net Created Date 6/14/2016 7:05:09 PM](https://reader034.vdocuments.site/reader034/viewer/2022042802/5f39ad3b81ae0a47e237a71d/html5/thumbnails/14.jpg)
async function afunc() { let res = await getPromise(); console.log(res);}
![Page 15: Async/Await JavaScript - Entwicklertag...TypeScript JohannesDienst jdienst@multamedio.de JohannesDienst.net Created Date 6/14/2016 7:05:09 PM](https://reader034.vdocuments.site/reader034/viewer/2022042802/5f39ad3b81ae0a47e237a71d/html5/thumbnails/15.jpg)
await
async
![Page 16: Async/Await JavaScript - Entwicklertag...TypeScript JohannesDienst jdienst@multamedio.de JohannesDienst.net Created Date 6/14/2016 7:05:09 PM](https://reader034.vdocuments.site/reader034/viewer/2022042802/5f39ad3b81ae0a47e237a71d/html5/thumbnails/16.jpg)
async function afunc() { let res = await getPromise(); console.log(res);}
// Returns promiselet res = afunc();
![Page 17: Async/Await JavaScript - Entwicklertag...TypeScript JohannesDienst jdienst@multamedio.de JohannesDienst.net Created Date 6/14/2016 7:05:09 PM](https://reader034.vdocuments.site/reader034/viewer/2022042802/5f39ad3b81ae0a47e237a71d/html5/thumbnails/17.jpg)
async function afunc() {
await Promise.all( [getPromise1(), getPromise1()] );
}
![Page 18: Async/Await JavaScript - Entwicklertag...TypeScript JohannesDienst jdienst@multamedio.de JohannesDienst.net Created Date 6/14/2016 7:05:09 PM](https://reader034.vdocuments.site/reader034/viewer/2022042802/5f39ad3b81ae0a47e237a71d/html5/thumbnails/18.jpg)
async function afunc() { try { let res = await getPromise(); console.log(res); } catch(error) { console.log('ERROR') }}
![Page 19: Async/Await JavaScript - Entwicklertag...TypeScript JohannesDienst jdienst@multamedio.de JohannesDienst.net Created Date 6/14/2016 7:05:09 PM](https://reader034.vdocuments.site/reader034/viewer/2022042802/5f39ad3b81ae0a47e237a71d/html5/thumbnails/19.jpg)
Asynchroner Code
in
synchronen Schläuchen
![Page 20: Async/Await JavaScript - Entwicklertag...TypeScript JohannesDienst jdienst@multamedio.de JohannesDienst.net Created Date 6/14/2016 7:05:09 PM](https://reader034.vdocuments.site/reader034/viewer/2022042802/5f39ad3b81ae0a47e237a71d/html5/thumbnails/20.jpg)
Callbacks
Promises Generatoren
Async/Await
![Page 21: Async/Await JavaScript - Entwicklertag...TypeScript JohannesDienst jdienst@multamedio.de JohannesDienst.net Created Date 6/14/2016 7:05:09 PM](https://reader034.vdocuments.site/reader034/viewer/2022042802/5f39ad3b81ae0a47e237a71d/html5/thumbnails/21.jpg)
ES2017
TypeScript