The Async Await Episode I Promised
ฝัง
- เผยแพร่เมื่อ 21 พ.ย. 2024
- The await is over! Learn how to make your JavaScript Promise code beautiful and concise with async-await github.com/cod...
Jake Archibald's Talk: • Jake Archibald on the ...
Demos with Angular: / @digitalfluency
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.
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.
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 deserve so many more views, favorite channel about development on youtube
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.
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!
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
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
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 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.
Incredible video. I avoided async and await because I didn't know what I was doing but now I think I get it
So far the BEST EXPLANATION I've seen of it with practical usage and short
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 ll feel so grateful finding your channel. As soon as I start making money , gonna buy those awesome courses
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.
Top tier stuff. I didn't fully understand the looping concurrently / await individually until now.
I think you broke my brain.
I have learned so much in a short period from your channel ... you deserve tons of credit
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 :)
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 blown my mind. I need to study a lot yet. Great video, thanks!
This was very helpful. I like how rapidly you gave instruction, yet made it very clear.
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!
bravo - the best 12 minute clear and simple explanation of promise, async/await I have seen to date...
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.
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 🚀✨
My mind just was blown away, amazing tutorial, as always.
This video has helped super-refine my understanding of asynchronous programming in general
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?
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.
Holy shit! I had no idea about the for await... loop! That's amazing, thank you!
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.
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.
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 :)
I'm just gonna let this video _sync_ in now
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 👍🏿
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 :)
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!
and i set the speed setting to 0.75 for this
Superb 🔥, usually I watch TH-cam 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
"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
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.
LOVE this... You've helped me so much understanding this concept.
The clearest explanation of async/await that I've encountered. Well done!
I await for your next video :)
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.
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
This video cleared a lot of things up for me, thank you!
This was one of the videos that I didn't want to skip any second!! GREAT JOB ! Much Appreciated!
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
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
Don't leave a comment! It ruins my chances for a free T-shirt! (Great video!)
using await in if condition is really cool
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.
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
I am binging your channel. It's been 2 weeks and am already loving web dev 😀
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.
Each an individual day is a learning from you guys, you guys deserved much better. Await for the T-Shirt
i thought it was a 12 min video but i have to watch a 35 min video :(
Exactly😂
New subscriber here. the content quality of video are Amazing.
i need this in my api thanks
Discovered your channel very late. Thanks for such a clear explanation.
So fast u made it so complicated you get me lost more than i was hhhh
Another great tutorial from Mr. Delaney! Bravo!
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
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
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 TH-cam links natively. You can slow down video however you want.
I’ve never understand async before this video, best guide ever
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())
The best tutorial for async functions I've ever seen!
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.
Fun Fact: You will only be impressed by the video if you already know the concept
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
This video is the best Async/Await video on TH-cam! Keep it up!
Great job, however, this was very fast. It`s so much info in 12 minutes. I was pausing and rewinding hundreds of times.
Amazing video, now I want a smoothie 🍓
async winnerTShirt() {
await('ME');
}
Best Async/Await video
very good point you mention that async/await will not work as expected
you talk so fast. i cant watch whole things clearly
yup. way too fast. I slowed down to -0.75 speed. 😂
i can't believe how hard this guy killed it. sick explanation!
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
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
The real catch with promises is that, when we write synchronous code in them they still block the code execution as the code that is written in the pormise runs immediatley and since it is synchronius it is handled by the runtime (broweser's engine here). The only thing that is queued in the microtask queue is the callback in the then. In case we write any asynchronous code in the promise that is handled by the web apis or any other runtime apis then its a different case.
Exactly the right speed! Understood everything without pausing
Each time I need to use asynchronous in TypeScript I watch this video, thx man
the Jake Archibald talk is fantastic! your tutorial too! thanks
A couple of years back, had to learn the hard way the difference between mapping and firing a promise inside of the cb and using a traditional for loop when our server broke... One learns a new thing everyday :)
Thank you for your tutorials. I slow down to 75% to learn better with you!
Thank You So Much for this wonderfull video....................🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻
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.
Nice explanation , learned a lot about async and await. Thanks for you frequent videos on practical topics .
came here just because the clever title.. nicely done... nicely done...
You share best tech knowledge that too wrapped in smallest amount of time... Kudos... Loving ur stuff 😊