I was debugging something for an hour and decided it's finally time to fully understand the async / await functionality, turns out the concurrent map execution was the issue lol. Thank you for the quality content (from 4 years ago), you are helping me a lot and everyone else in the community.
Promise Statements and Async Await are the favorite things I've recently learned about in JavaScript. This lecture was/is right at the borders of what I understand, and was challenging in a good way. I appreciate the visuals. I really appreciate the additional lecture resources you mentioned. I will study them and loop back to this periodically until I'm clear on what was presented.
I just made a promise to a friend of attending a surprise birthday tomorrow and I probably screwed it up because I also promised my family to go out on a trip the same day which I haven't resolved yet ugh.
It's good that you explain the background of async/await! I consider those keywords both a blessing and a curse. In my experience, people new to JavaScript use it without knowing what's going on in the background. This often leads to bad results which they don't know how to resolve. When you know how promises work, you can actually appreciate what async/await is abstracting away for you.
When I started working with Promises, it took me a while to realise that the _.then()_ was pretty much the same problem as the callback. And the big problem for me was that outside the "then()", I had no way of knowing WHEN the then has resolved, or even if it had at all. "Await" is much better.
This video is from Oct 11, 2018. It is still one of the best explanation I have ever seen. It is just so clear. And that recommended video about the NodeJS event loop is a must-watch for JavaScript developers. I am an Android Developer and I saw that video. So if you are JS Dev and you did not, you might be a bit late. No worries there is still time. :P
Being new as a developer with just over a year coding and picking up JS as my main language a couple of months back, this video explains so many of the issues I have encountered coming from a synchronous language (Java and Python) to async in JS and TS. This channel does a great job of explaining essential concepts to newcomers like me. I'm glad I found the channel. Thanks!
Man you definitely deserve much of the credit for the success of my future StartUp^^ Please don't stop, your videos are making the world a better place, thank you
i swear to god for every two minutes i spent watching this video, i had to pause and go read about 2 hours worth of material. Totally worth it tho, i love this fast paced style of teaching.
Yep, I also went to check in the comments whether smth had been already mentioned on that point, so that just not to blurt out anything silly. :) Still I really love to re-watch these tutorials now and then!
I love this channel and maintain a pro subscription over on their site and have found it to be more than worth the price of subscription, free access to current and upcoming courses is amazing and I love how a lot of the pro videos are a direct and more in-depth look at an earlier free video with an emphasis on real world use case scenarios. This video is excellent and really helped me to further understand how and more importantly when and when not to use async await in my code. Thanks again man and keep producing incredible content!
Before I watched a lot of your videos I was in the first part of the Dunning-Kruger effect, but after watching a ton of your videos I now realize how much I don't yet know.
Hats off to you, you legend. It's mad that you can symmarize all of these concepts into just 12 minutes while making more sense then all the other videos out there that take 3-4 times longer.
I admire how you explain why async await even exists in the first place and that you should use it in a certain way to achieve maximum efficiency. Keep it up ur the best, OG subscriber :)
Great video! But I wondered if there might be a mistake around 8:00 on the right side. Shouldn't it be 'a = v' instead of 'v = a' if the code should be doing the same? Thanks.
Please this time choose me. I'm following this channel right the beginning and I have implemented so many in my development using your tips. I never interested in getting t-shirts but as the days goes by seeing your videos making me to think that I should probably get your t-shirt and I should don it proudly saying you're my teacher. And again you're great. Man seriously you're awesome and the way you'll explain things is impeccable.
What a video, brother! I've read about it and watched quite a few videos with examples and it was still not clear. They all show you a promise converted to Async/Await...all of them failed to provide the context with the event loop in the manner you did. Best explanation hands down. Thanks for the great content. I just subscribed. P.s.: Yes...3 years after the last comment... :)
It’s insane how quickly JS is developing new features. So excited to see what happens next or if we can get an ES based typing system. Thanks for the vid!
Oh my god thank you! I will be watching this video every single time I need to write asynchronous javascript for the foreseeable future. I have been making a couple of these mistakes you pointed out. This video deserves 20 billion views.
This is top tier stuff. I've been watching Fireship for like 2 years, but it's only now that I'm finding myself forced to actually learn webdev for good. These old videos are still incredibly sharp, I'm really impressed.
Ok newbie on JS and programming here. Didn't understand most of it, but is fun watching intermediate/advanced content like this and wonder if in my future I'll be able to comprehend and do all of this by myself.
Me watching suggested courses and listening to my older colleagues for years -> almost medior developer Me watching Fireship for a month -> super senior Thx Jeff, you are amazing
I did not get it the first time I watched this episode, but now I know a bit more about javascript and when I came back for a review I laughed so hard XD
very very good explanation. detailing use-cases. mentioning common pitfalls. if everyone explained things like that, by now we would have conquered our local stellar environment 🚀✨
Got one question that's been bugging me and I can't wrap my head around it. The code on the right - line 67, shouldn't it be inverted? meaning a = v? Because otherwise you would be assigning *v* to an undefined value, and what you should be aiming for is to store the value you have in *v* into *a*, that's the propose of *a*, right? (Pleas someone tell me what I'm missing, thank you)
Async/Await is a double-edged sword. It's a great addition to Javascript but it's also massively misused. I'm trying not to sound "elitist" here, but the complexity of promises and RxJS set a barrier for entry. People needed to understand how to write reactive code, work with asynchronous functions, etc. Now Async/Await has become the hammer for every timing bug that looks like a nail. I've seen the async and await keywords peppered through code in the hope it will magically fix a timing issue, mountains of code needlessly synchronised to the point it's stuttering to a halt on every page load. Hopefully people will take your "trolling" on board and gain an understanding of how it works. Really happy to see the pitfalls covered as well as the benefits.
I agree with you 100%, that's actually why highlighted some of the misuse and started with the event loop. Overall though, its had an overwhelmingly positive impact on the projects I've been involved with.
Seems pretty simple to me. Batch non-dependent promises with promise.all(), await promises, don't await synchronous code. Surely the benefits of async/await far outweigh the people using it wrong.
Found your video of right good code not 💩 in my feed, loved you style of explanation and the way you provide the video editing is exceptional 🤩 one of the channels I'll definitely share and follow!
Superb 🔥, usually I watch RUclips tutorial by keeping the speed 1.75 or 2x , but this is the first video where I have to reduce the speed to 0.75x to get the concept. Very useful one, thanks
after studying and learning javascript, getting certificates from 4 different online completed courses, I watch this video, get depressed and rip up all my certificates and start all over again. so depressing :( because i now feel like I didnt learn shit from those courses and have to start all over again from scratch. ooh well, back to html and css and eventually javascript yet again :(
no jokes? i feel REJECTed didn't know about the for loop stuff, cool! about the try/catch: should i wrap all the awaits in one or use a separate try/catch for each await to treat better different errors? great video as always!
That's a great question and almost included a section, but vid was getting long. I would say only 1 try/catch per function, but you might want to chain a catch call back to individual promises for fine grained error handling as needed.
Im teaching myself Async Await in Python right now. Was very confused at first. I got my code to run, but this video helps me understand it better still.
I think It’s better as it is - simply as mentioned above - It’s more efficient to rewatch the whole video or a part of it for the sake of understanding rather than get a long one with slow explanation that usually tends to make the viewer get bored and lose focus
You do know you are calling and running comment and winTshirt immediately, not waiting for the video to finish? I presume you meant to reference the comment function, not run it?
*then* takes a function reference. So unless your comment and winTshirt methods return a function, they would get executed immediately watchVideo() .then(comment) .then(winTshirt); or if you Don't want to use response from previous promise watchVideo() .then(videoWatched => comment()) .then(commented => winTshirt())
Nice, thanks so much. Jake Archibald really made it clear for me whats going on. Your stuff is always great and i always get something from it even if i think i know already.
Whoa whoa, slow down a little man. Great content but you are going way too fast. I know it definitely takes more effort and may not be worth it, but if you type out the code instead of coping and pasting the slowed pacing will make it much easier for your audience to grasp the concepts.
You have incredible content and the way you present it is amazing 👏🏿👏🏿👏🏿 Also there’s a gotcha with async where if you mark a function async it does return a promise but if you do not use an await modifier inside the async function it would behave as a normal function. Example async function hello() { console.log(‘world’) } hello() console.log(“This is second”) Output world This is second What we generally think is that the hello() function would run later since it returns a promise but it does not since it doesn’t have await
I didn't know about that underscore, writing () must be too annoying, but at least it's very clear. However with only one argument, *const you_dont_need_the = parenthesis => "it works"*
Glad he returned the promise that we've long awaited
😷😷😷
LOL no pun right ?
But the Actions job failed because he took more than six hours.
Finally fulfilled
Get out
I was debugging something for an hour and decided it's finally time to fully understand the async / await functionality, turns out the concurrent map execution was the issue lol. Thank you for the quality content (from 4 years ago), you are helping me a lot and everyone else in the community.
You deserve so many more views, favorite channel about development on youtube
Promise Statements and Async Await are the favorite things I've recently learned about in JavaScript. This lecture was/is right at the borders of what I understand, and was challenging in a good way. I appreciate the visuals. I really appreciate the additional lecture resources you mentioned. I will study them and loop back to this periodically until I'm clear on what was presented.
"When you're start making promises that's when you're more likely to screw things up"
That's also how it works in real life. Noted.
I've always thought JavaScript could never actually be a good analogy for everyday life.
Yepp
I knew someone would quote this before I looked through these comments.
I just made a promise to a friend of attending a surprise birthday tomorrow and I probably screwed it up because I also promised my family to go out on a trip the same day which I haven't resolved yet ugh.
It's good that you explain the background of async/await!
I consider those keywords both a blessing and a curse. In my experience, people new to JavaScript use it without knowing what's going on in the background. This often leads to bad results which they don't know how to resolve.
When you know how promises work, you can actually appreciate what async/await is abstracting away for you.
When I started working with Promises, it took me a while to realise that the _.then()_ was pretty much the same problem as the callback. And the big problem for me was that outside the "then()", I had no way of knowing WHEN the then has resolved, or even if it had at all. "Await" is much better.
This video is from Oct 11, 2018. It is still one of the best explanation I have ever seen. It is just so clear. And that recommended video about the NodeJS event loop is a must-watch for JavaScript developers. I am an Android Developer and I saw that video. So if you are JS Dev and you did not, you might be a bit late. No worries there is still time. :P
Being new as a developer with just over a year coding and picking up JS as my main language a couple of months back, this video explains so many of the issues I have encountered coming from a synchronous language (Java and Python) to async in JS and TS. This channel does a great job of explaining essential concepts to newcomers like me. I'm glad I found the channel. Thanks!
You Promised, and we awaited.
...Sorry for bad joke
It's ok, async-await is the best place for bad jokes :)
I sync it wasn't that bad.
yeah! all async-ed
😂😂😂
Deserves a medal
You’re the only guy that I slow the speed down instead of skipping or speeding it up 🙂. Love the emoticons in the code, how do you do that?
Thanks Gary. They are supported natively on most systems now so you can copy them from Emojipedia, or use them on the web with a utf8 meta tag.
You can also use the Windows key + dot/period shortcut anywhere in Windows
oh sweet thank you Mayank
On macOS control+command+space pulls up the Emoji keyboard
ahah i was just going for the speed option when i saw your comment on the top of the comment list XD
Man you definitely deserve much of the credit for the success of my future StartUp^^
Please don't stop, your videos are making the world a better place, thank you
Great to hear that! Buy me a beer when your valuation reaches 1Billion.
i swear to god for every two minutes i spent watching this video, i had to pause and go read about 2 hours worth of material. Totally worth it tho, i love this fast paced style of teaching.
It blown my mind. I need to study a lot yet. Great video, thanks!
So far the BEST EXPLANATION I've seen of it with practical usage and short
Typo at 8:00, screen on the right, line number 67, it should be a=v.
Great tutorial! 😀
You're right, good eyes :)
Oh, thank you man, I thought that is something wrong witm me, when I was trying to understand why is there are a=v
@@Fireship You should add this as a comment or something for future viewers.. and thanks for the great tutorial! :)
Yep, I also went to check in the comments whether smth had been already mentioned on that point, so that just not to blurt out anything silly. :) Still I really love to re-watch these tutorials now and then!
I was about to write the same comment. Good catch !
I ll feel so grateful finding your channel. As soon as I start making money , gonna buy those awesome courses
I love this channel and maintain a pro subscription over on their site and have found it to be more than worth the price of subscription, free access to current and upcoming courses is amazing and I love how a lot of the pro videos are a direct and more in-depth look at an earlier free video with an emphasis on real world use case scenarios. This video is excellent and really helped me to further understand how and more importantly when and when not to use async await in my code. Thanks again man and keep producing incredible content!
Thank you Connor! Happy to hear the feedback. How NOT to use async/await is probably the most important part :)
I have learned so much in a short period from your channel ... you deserve tons of credit
I'm a backend dev and I just wanted to say this was a brilliant to-the-point video. I had to watch it twice but very invaluable. Subbed.
Before I watched a lot of your videos I was in the first part of the Dunning-Kruger effect, but after watching a ton of your videos I now realize how much I don't yet know.
Hats off to you, you legend. It's mad that you can symmarize all of these concepts into just 12 minutes while making more sense then all the other videos out there that take 3-4 times longer.
Incredible video. I avoided async and await because I didn't know what I was doing but now I think I get it
bravo - the best 12 minute clear and simple explanation of promise, async/await I have seen to date...
My mind just was blown away, amazing tutorial, as always.
I admire how you explain why async await even exists in the first place and that you should use it in a certain way to achieve maximum efficiency.
Keep it up ur the best, OG subscriber :)
Great video!
But I wondered if there might be a mistake around 8:00 on the right side. Shouldn't it be 'a = v' instead of 'v = a' if the code should be doing the same?
Thanks.
correct, i tested it. his code returned undefined as a is undefined and v=a which makes v undefined as well.
Please this time choose me. I'm following this channel right the beginning and I have implemented so many in my development using your tips. I never interested in getting t-shirts but as the days goes by seeing your videos making me to think that I should probably get your t-shirt and I should don it proudly saying you're my teacher. And again you're great. Man seriously you're awesome and the way you'll explain things is impeccable.
Holy shit! I had no idea about the for await... loop! That's amazing, thank you!
What a video, brother!
I've read about it and watched quite a few videos with examples and it was still not clear.
They all show you a promise converted to Async/Await...all of them failed to provide the context with the event loop in the manner you did.
Best explanation hands down. Thanks for the great content.
I just subscribed.
P.s.: Yes...3 years after the last comment... :)
It’s insane how quickly JS is developing new features. So excited to see what happens next or if we can get an ES based typing system. Thanks for the vid!
Oh my god thank you! I will be watching this video every single time I need to write asynchronous javascript for the foreseeable future. I have been making a couple of these mistakes you pointed out. This video deserves 20 billion views.
This is top tier stuff. I've been watching Fireship for like 2 years, but it's only now that I'm finding myself forced to actually learn webdev for good. These old videos are still incredibly sharp, I'm really impressed.
This was one of the videos that I didn't want to skip any second!! GREAT JOB ! Much Appreciated!
I think you broke my brain.
This video is the best Async/Await video on RUclips! Keep it up!
Great video! Great explanation, great quality, hoping for that free shirt!!
WINNER 🎉 - Congrats, you won the T-shirt. Message me with your mailing address and size :)
This was very helpful. I like how rapidly you gave instruction, yet made it very clear.
Ok newbie on JS and programming here. Didn't understand most of it, but is fun watching intermediate/advanced content like this and wonder if in my future I'll be able to comprehend and do all of this by myself.
updates??
3 years later! Did you continue with your programming journey?
The clearest explanation of async/await that I've encountered. Well done!
LOVE this... You've helped me so much understanding this concept.
Me watching suggested courses and listening to my older colleagues for years -> almost medior developer
Me watching Fireship for a month -> super senior
Thx Jeff, you are amazing
I'm just gonna let this video _sync_ in now
This video has helped super-refine my understanding of asynchronous programming in general
"The Async Await Episode I Promised"
...and that's how you make a video title.
I did not get it the first time I watched this episode, but now I know a bit more about javascript and when I came back for a review I laughed so hard XD
very very good explanation. detailing use-cases. mentioning common pitfalls. if everyone explained things like that, by now we would have conquered our local stellar environment 🚀✨
This video cleared a lot of things up for me, thank you!
The best tutorial for async functions I've ever seen!
Got one question that's been bugging me and I can't wrap my head around it. The code on the right - line 67, shouldn't it be inverted? meaning a = v? Because otherwise you would be assigning *v* to an undefined value, and what you should be aiming for is to store the value you have in *v* into *a*, that's the propose of *a*, right? (Pleas someone tell me what I'm missing, thank you)
Agreed!
same question here
You are correct, it should be the other way around.
Your quality of videos is absolutely incredible Sir.
Async/Await is a double-edged sword. It's a great addition to Javascript but it's also massively misused. I'm trying not to sound "elitist" here, but the complexity of promises and RxJS set a barrier for entry. People needed to understand how to write reactive code, work with asynchronous functions, etc. Now Async/Await has become the hammer for every timing bug that looks like a nail. I've seen the async and await keywords peppered through code in the hope it will magically fix a timing issue, mountains of code needlessly synchronised to the point it's stuttering to a halt on every page load. Hopefully people will take your "trolling" on board and gain an understanding of how it works. Really happy to see the pitfalls covered as well as the benefits.
I agree with you 100%, that's actually why highlighted some of the misuse and started with the event loop. Overall though, its had an overwhelmingly positive impact on the projects I've been involved with.
Seems pretty simple to me. Batch non-dependent promises with promise.all(), await promises, don't await synchronous code. Surely the benefits of async/await far outweigh the people using it wrong.
Found your video of right good code not 💩 in my feed, loved you style of explanation and the way you provide the video editing is exceptional 🤩 one of the channels I'll definitely share and follow!
Holy sh*t i need to let this "sync" in so that i can "await" for better time to "express" myself and "promise" to come back....
im still awaiting your response
Superb 🔥, usually I watch RUclips tutorial by keeping the speed 1.75 or 2x , but this is the first video where I have to reduce the speed to 0.75x to get the concept. Very useful one, thanks
after studying and learning javascript, getting certificates from 4 different online completed courses,
I watch this video, get depressed and rip up all my certificates and start all over again. so depressing :(
because i now feel like I didnt learn shit from those courses and have to start all over again from scratch.
ooh well, back to html and css and eventually javascript yet again :(
Can't be that bad !
I had spent lot of hours to read so many articles about async await & promises but this guy clear my concept in just 10min
and i set the speed setting to 0.75 for this
Top tier stuff. I didn't fully understand the looping concurrently / await individually until now.
no jokes? i feel REJECTed
didn't know about the for loop stuff, cool! about the try/catch: should i wrap all the awaits in one or use a separate try/catch for each await to treat better different errors?
great video as always!
i feel stupid. i didn't get the initial a sink a weight joke. good one
That's a great question and almost included a section, but vid was getting long. I would say only 1 try/catch per function, but you might want to chain a catch call back to individual promises for fine grained error handling as needed.
You just showed me how much more ground I need to cover in JavaScript. Gets me excited to see I'm not even 10% done. Keep it up 👍🏿
I await for your next video :)
I’ve never understand async before this video, best guide ever
i thought it was a 12 min video but i have to watch a 35 min video :(
Exactly😂
One of the best channel making intermediate developer expert
Always like your video's, really educational. But I always have to watch on 0.75x speed else it goes to fast to understand.
I usually watch at 2.0 x, you it hardly is a choice of interest. It is not proportional to learning rate though. ;D
The best video I've watched so far for await / async. I covers all the aspect in such small duration. Loved the emoji too :D
Don't leave a comment! It ruins my chances for a free T-shirt! (Great video!)
What a video. You can't miss even a second of it
New subscriber here. the content quality of video are Amazing.
i need this in my api thanks
One of the best channel out there !!! Excellent content
So fast u made it so complicated you get me lost more than i was hhhh
Im teaching myself Async Await in Python right now. Was very confused at first. I got my code to run, but this video helps me understand it better still.
I liked it but it was too fast to digest. Could you please consider making videos less faster. Truly appreciate the value of the info. Thank you
use vlc, it supports RUclips links natively. You can slow down video however you want.
Another great tutorial from Mr. Delaney! Bravo!
The explanation is not very succinct. You could have explained a bit slower
I have no idea what he's talking about, I had to stop at 3 minutes
I watched video like 3 times, and its easier to rewatch it when he speaks fast
I personally love the speed of the explanation. If I don't understand I just pause the video or rewind a bit.
I think It’s better as it is - simply as mentioned above - It’s more efficient to rewatch the whole video or a part of it for the sake of understanding rather than get a long one with slow explanation that usually tends to make the viewer get bored and lose focus
This is an advanced topic, not for beginners. This is the right speed if you know what he is talking about.
I am binging your channel. It's been 2 weeks and am already loving web dev 😀
watchVideo()
.then(comment())
.then(winTshirt());
You do know you are calling and running comment and winTshirt immediately, not waiting for the video to finish? I presume you meant to reference the comment function, not run it?
await watchVideo()
await comment()
const didWin = await winTshirt()
if(didWin) console.log("😁")
Luke Pighetti you can use it on if conditions :)
@@LukePighetti u missed try catch block
*then* takes a function reference. So unless your comment and winTshirt methods return a function, they would get executed immediately
watchVideo()
.then(comment)
.then(winTshirt);
or if you Don't want to use response from previous promise
watchVideo()
.then(videoWatched => comment())
.then(commented => winTshirt())
Each an individual day is a learning from you guys, you guys deserved much better. Await for the T-Shirt
Serious question. Does anyone really like this speed? He is certainly very knowledgeable but I doubt if anyone can really understand him.
I agree, I usually speed-up videos, but this one as actually too fast for me
Nice, thanks so much. Jake Archibald really made it clear for me whats going on. Your stuff is always great and i always get something from it even if i think i know already.
Thanks! Jake's talk is one of my favorite of all time.
Whoa whoa, slow down a little man. Great content but you are going way too fast. I know it definitely takes more effort and may not be worth it, but if you type out the code instead of coping and pasting the slowed pacing will make it much easier for your audience to grasp the concepts.
I agree, I had to put him on .75 playback.
I had same thought, I had to rewind many time to understand "billion loop".
this isnt a tutorial
You have incredible content and the way you present it is amazing 👏🏿👏🏿👏🏿
Also there’s a gotcha with async where if you mark a function async it does return a promise but if you do not use an await modifier inside the async function it would behave as a normal function.
Example
async function hello() { console.log(‘world’) }
hello()
console.log(“This is second”)
Output
world
This is second
What we generally think is that the hello() function would run later since it returns a promise but it does not since it doesn’t have await
you talk so fast. i cant watch whole things clearly
yup. way too fast. I slowed down to -0.75 speed. 😂
Hi, It helps me lot to understand async and await. To understand it I have seen the videos 3 times. Thanks for making such videos.👍👍
Great to hear that, thanks for watching :)
that's way too fast. I got discourage after 2 minutes
You have to set the timeout for at least 12 minutes and 4 seconds
You share best tech knowledge that too wrapped in smallest amount of time... Kudos... Loving ur stuff 😊
async winnerTShirt() {
await('ME');
}
Great job, however, this was very fast. It`s so much info in 12 minutes. I was pausing and rewinding hundreds of times.
Discovered your channel very late. Thanks for such a clear explanation.
the Jake Archibald talk is fantastic! your tutorial too! thanks
Really indeed very cool!!! Feels like an hour of tutorial. Thanks
Wow! Just wow. Have no words to explain. You were really clear..... Thanks a lot.
Uses _ => when there are no arguments... uses (v) => when there is a single argument 🤦🏻♂️🤦🏻♂️
Thanks for the great content! Keep it up! 🙌🙌
I didn't know about that underscore, writing () must be too annoying, but at least it's very clear. However with only one argument, *const you_dont_need_the = parenthesis => "it works"*
Best Async/Await video
very good point you mention that async/await will not work as expected
man i was struggleing to get why await wasnt waiting in a foreach loop... needless to say thanks mate, i just came thru that thanks to you
Never disappointed with your videos Jeff!
super appreciate the vid, so much info. ngl, its taken me about an hour to get through this 12 minute video
Concise, fast a great explanation. Kudos to you sir
i can't believe how hard this guy killed it. sick explanation!
Nice explanation , learned a lot about async and await. Thanks for you frequent videos on practical topics .
Thank you for your tutorials. I slow down to 75% to learn better with you!