Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
You don't know Promises - IT Konekt April 2019
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Ivan Jovanovic
April 20, 2019
Technology
73
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
You don't know Promises - IT Konekt April 2019
Ivan Jovanovic
April 20, 2019
More Decks by Ivan Jovanovic
See All by Ivan Jovanovic
Micro Frontends - A microservice approach to the modern web - Oredev 2019
ivanjov
0
100
Micro Frontends - A microservice approach to the modern web - O'Reilly Software Architecture Berlin 2019
ivanjov
0
82
React State - The Good, the Bad and the Ugly - ArmadaJS
ivanjov
0
130
Thinking Reactive in JavaScript - Sphere.it JS Krakow
ivanjov
0
80
Micro Frontends - A microservice approach to the modern web - PHPSrbija
ivanjov
0
220
Micro Frontends - A microservice approach to the modern web - Codemotion Rome 2019
ivanjov
0
350
Mikro Frontendi - Uvod - Novi Sad JS
ivanjov
0
170
Software engineer marketing done right – career tips from my experience.
ivanjov
0
48
Micro Frontends - A microservice approach to the modern web - Full Stack London 2018
ivanjov
0
250
Other Decks in Technology
See All in Technology
個人OSSが、机の上から世界に広がるまでの話
shinyasaita
1
390
Agent 時代の Kaggle 展望 / kaggle-in-the-agentic-era
upura
1
700
MIRU 2026 チュートリアル
keisuke198619
0
890
メルカリのグローバルアプリで挑んだ AlloyDB 運用と課題解決の実践記
hatappi
0
240
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.2k
Service Connect 上のサービスに ECS Service の外側から到達できなかった話
ota1022
1
220
カートの信頼性を担保するWireMockを使ったe2eテスト
ykagano
0
190
第3回しろおびセキュリティスポンサーセッション
log0417
0
170
Digitization部 紹介資料
sansan33
PRO
2
7.7k
FDEの心得
noriakioji
3
4.3k
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
190
ボトムアップ文化が強い組織で セキュリティをどう根付かせていくかの現在進行形の話 / Making Security Stick in a Bottom-Up Organization
yamaguchitk333
0
210
Featured
See All Featured
KATA
mclloyd
PRO
35
15k
Tell your own story through comics
letsgokoyo
1
1k
Documentation Writing (for coders)
carmenintech
77
5.4k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Navigating Team Friction
lara
192
16k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
370
WCS-LA-2024
lcolladotor
0
790
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
490
We Are The Robots
honzajavorek
0
300
Scaling GitHub
holman
464
140k
Transcript
You don't know Promises
I am Ivan Jovanovic Senior Software Engineer, Tech Speaker You
can find me at @ivanjov96 or https://ivanjov.com Hello! IJ Consulting
Why I don't know Promises?
None
None
I am here today To show you how Promises really
work!
JavaScript is strange because ‒ It was built for 10
days ‒ It has one thread ‒ It is synchronous and asynchronous ‒ It is everywhere ‒ It is different
Only one thread And the event loop
None
How do we handle async code? Promises Callbacks Async/await
Callbacks Where everything began... 1
“ A callback is a function that is passed as
an argument and will be executed after another function has finished executing.
None
None
Promises Changed everything 2
“ The Promise object represents the eventual completion (or failure)
of an asynchronous operation, and its resulting value.
None
None
How Promises really work? The answer is a Microtask queue!
None
Microtask queue ‒ Independent queue ‒ Used by: process.nextTick, Promises,
Object.observe, MutationObserver ‒ Faster than the main queue and may be drained several times in a single event loop tick
None
Next TICK ONE Next TICK TWO TIMEOUT AFTER-ONE TIMEOUT AFTER-TWO
Promise methods ‒ Promise.all(iterable) ‒ Promise.race(iterable) ‒ Promise.resolve(value) ‒ Promise.reject(reason)
Promise.all(iterable)
Rejected situation
Promise.race(iterable)
Promisify non-Promise code
Native Promises from libraries
Async/await Comes to the rescue 3
“ Async/Await is a special syntax for working with Promises.
None
Most common problems with Promises that we see every day!
9
Nested promises 1
None
None
Broken Promise chain 2
None
None
Mixing sync and async code 3
None
None
None
Missing catch 4
None
None
None
Forget to return a Promise 5
None
None
Promisified synchronous code 6
None
Mixing Promise and Async/Await 7
None
None
Async function that returns Promise 8
None
None
None
Define a callback as an async function 9
None
Clinic.js https://clinicjs.org/
Conclusion ‒ JS is crazy and great at the same
time! ‒ Async behavior is a pro, not a con. ‒ Be careful when using Promises, it's great and dangerous at the same time!
Any questions ? You can find me at ‒ @ivanjov96
‒
[email protected]
Thanks!