Тёмный

The Async Await Episode I Promised 

Fireship
Подписаться 3,1 млн
Просмотров 1,1 млн
50% 1

The await is over! Learn how to make your JavaScript Promise code beautiful and concise with async-await github.com/codediodeio/async-...
Jake Archibald's Talk: • Jake Archibald on the ...
Demos with Angular: / @digitalfluency

Наука

Опубликовано:

 

10 окт 2018

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 1 тыс.   
@kiwihour333
@kiwihour333 2 года назад
Glad he returned the promise that we've long awaited
@notsojharedtroll23
@notsojharedtroll23 Год назад
😷😷😷
@Daddyjs
@Daddyjs Год назад
LOL no pun right ?
@santi100a
@santi100a Год назад
But the Actions job failed because he took more than six hours.
@nyx2859
@nyx2859 Год назад
Finally fulfilled
@Shhehwhsi24
@Shhehwhsi24 Год назад
then...
@skylible
@skylible 5 лет назад
"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.
@cyan2048
@cyan2048 2 года назад
I've always thought JavaScript could never actually be a good analogy for everyday life.
@Mzulfreaky
@Mzulfreaky 2 года назад
Yepp
@neux64
@neux64 Год назад
I knew someone would quote this before I looked through these comments.
@nullbeyondo
@nullbeyondo 11 месяцев назад
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.
@garywaddell6309
@garywaddell6309 5 лет назад
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?
@Fireship
@Fireship 5 лет назад
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.
@__mayank
@__mayank 5 лет назад
You can also use the Windows key + dot/period shortcut anywhere in Windows
@davidn7026
@davidn7026 5 лет назад
oh sweet thank you Mayank
@LukePighetti
@LukePighetti 5 лет назад
On macOS control+command+space pulls up the Emoji keyboard
@djadjana
@djadjana 5 лет назад
ahah i was just going for the speed option when i saw your comment on the top of the comment list XD
@kld0093
@kld0093 5 лет назад
You Promised, and we awaited. ...Sorry for bad joke
@Fireship
@Fireship 5 лет назад
It's ok, async-await is the best place for bad jokes :)
@resetcoder
@resetcoder 5 лет назад
I sync it wasn't that bad.
@jingchuanzhu1073
@jingchuanzhu1073 5 лет назад
yeah! all async-ed
@sindydanelygarciahernandez
@sindydanelygarciahernandez 4 года назад
😂😂😂
@jelordgulle9022
@jelordgulle9022 4 года назад
Deserves a medal
@dangerous_tangerine
@dangerous_tangerine Год назад
I think you broke my brain.
@taltalonix
@taltalonix Год назад
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.
@thehumanslayer55
@thehumanslayer55 5 лет назад
You deserve so many more views, favorite channel about development on youtube
@busyrand
@busyrand 5 лет назад
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.
@loddulf
@loddulf 5 лет назад
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!
@jesselima_dev
@jesselima_dev 3 года назад
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
@EelFeEr
@EelFeEr 5 лет назад
It blown my mind. I need to study a lot yet. Great video, thanks!
@Jopie65
@Jopie65 5 лет назад
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.
@robertzeurunkl8401
@robertzeurunkl8401 2 года назад
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.
@aerivera
@aerivera 5 лет назад
My mind just was blown away, amazing tutorial, as always.
@shop.autocrew2570
@shop.autocrew2570 5 лет назад
Typo at 8:00, screen on the right, line number 67, it should be a=v. Great tutorial! 😀
@Fireship
@Fireship 5 лет назад
You're right, good eyes :)
@orcsword
@orcsword 5 лет назад
Oh, thank you man, I thought that is something wrong witm me, when I was trying to understand why is there are a=v
@karinchechik2661
@karinchechik2661 5 лет назад
@@Fireship You should add this as a comment or something for future viewers.. and thanks for the great tutorial! :)
@oksanaserhiivna2634
@oksanaserhiivna2634 5 лет назад
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!
@firstprincipleslearning
@firstprincipleslearning 5 лет назад
I was about to write the same comment. Good catch !
@davieskwarteng
@davieskwarteng 5 лет назад
I have learned so much in a short period from your channel ... you deserve tons of credit
@utkarshsaxena7826
@utkarshsaxena7826 3 года назад
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.
@tomlemanh5506
@tomlemanh5506 5 лет назад
LOVE this... You've helped me so much understanding this concept.
@dakedres
@dakedres 4 года назад
Holy shit! I had no idea about the for await... loop! That's amazing, thank you!
@hambrsoombaboyan2078
@hambrsoombaboyan2078 4 года назад
This was one of the videos that I didn't want to skip any second!! GREAT JOB ! Much Appreciated!
@markemerson98
@markemerson98 3 года назад
bravo - the best 12 minute clear and simple explanation of promise, async/await I have seen to date...
@hicoop
@hicoop 2 года назад
Incredible video. I avoided async and await because I didn't know what I was doing but now I think I get it
@tobiasrasmussen4347
@tobiasrasmussen4347 2 года назад
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.
@greenie2600
@greenie2600 2 года назад
The clearest explanation of async/await that I've encountered. Well done!
@arisgrey8772
@arisgrey8772 5 лет назад
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
@elbys_pocket
@elbys_pocket 5 лет назад
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!
@kazpeh
@kazpeh 5 лет назад
This video cleared a lot of things up for me, thank you!
@TT-pu1lw
@TT-pu1lw 3 года назад
I ll feel so grateful finding your channel. As soon as I start making money , gonna buy those awesome courses
@rahulsawant5531
@rahulsawant5531 5 лет назад
Your way of explaining things is just amazing! Thanks 😊👍
@connormcgill4798
@connormcgill4798 5 лет назад
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!
@Fireship
@Fireship 5 лет назад
Thank you Connor! Happy to hear the feedback. How NOT to use async/await is probably the most important part :)
@MartinLP123
@MartinLP123 5 лет назад
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.
@rancoxu
@rancoxu 5 месяцев назад
correct, i tested it. his code returned undefined as a is undefined and v=a which makes v undefined as well.
@heitormbonfim
@heitormbonfim 2 года назад
So far the BEST EXPLANATION I've seen of it with practical usage and short
@daddydo1735
@daddydo1735 5 лет назад
Another great tutorial from Mr. Delaney! Bravo!
@theprince08853
@theprince08853 4 года назад
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.
@alanschwarzlopez
@alanschwarzlopez 5 лет назад
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
@Fireship
@Fireship 5 лет назад
Great to hear that! Buy me a beer when your valuation reaches 1Billion.
@daniellaerachannel
@daniellaerachannel 5 лет назад
the Jake Archibald talk is fantastic! your tutorial too! thanks
@TheStrategistYT
@TheStrategistYT 2 года назад
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.
@feschber
@feschber 5 лет назад
I'm just gonna let this video _sync_ in now
@ChadHollman
@ChadHollman 5 лет назад
Great video! Great explanation, great quality, hoping for that free shirt!!
@Fireship
@Fireship 5 лет назад
WINNER 🎉 - Congrats, you won the T-shirt. Message me with your mailing address and size :)
@mohammedibrahimali2988
@mohammedibrahimali2988 5 лет назад
Each an individual day is a learning from you guys, you guys deserved much better. Await for the T-Shirt
@Dan-codes
@Dan-codes 3 года назад
This was very helpful. I like how rapidly you gave instruction, yet made it very clear.
@indrasusila9749
@indrasusila9749 5 лет назад
and i set the speed setting to 0.75 for this
@AngelHdzMultimedia
@AngelHdzMultimedia 3 года назад
"The Async Await Episode I Promised" ...and that's how you make a video title.
@kevinxin1545
@kevinxin1545 3 года назад
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
@sagar_pawar27
@sagar_pawar27 3 года назад
I had spent lot of hours to read so many articles about async await & promises but this guy clear my concept in just 10min
@okolin
@okolin 5 лет назад
Great content! I love quality and how well thought all of your videos!
@Afreshio
@Afreshio 3 года назад
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.
@devontebroncas4967
@devontebroncas4967 9 месяцев назад
updates??
@vakyz5333
@vakyz5333 5 лет назад
New subscriber here. the content quality of video are Amazing. i need this in my api thanks
@Sam-hj5ok
@Sam-hj5ok 2 года назад
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 👍🏿
@lukaschen6799
@lukaschen6799 4 года назад
The video you promised that we long awaited for.
@PaurakhSharma
@PaurakhSharma 5 лет назад
I await for your next video :)
@UCFc1XDsWoHaZmXom2KVxvuA
@UCFc1XDsWoHaZmXom2KVxvuA Год назад
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.
@blokche_dev
@blokche_dev 5 лет назад
Instructive, as usual! Thank you for clarifying some things about the promises.
@Fireship
@Fireship 5 лет назад
That's what I'm here for, thanks for watching :)
@pl5778
@pl5778 Год назад
Top tier stuff. I didn't fully understand the looping concurrently / await individually until now.
@TwstedTV
@TwstedTV 5 лет назад
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 :(
@AP-rs5wz
@AP-rs5wz 3 года назад
Can't be that bad !
@agusmelo1
@agusmelo1 2 года назад
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)
@hamidmohammad2157
@hamidmohammad2157 2 года назад
Agreed!
@FozIrenics
@FozIrenics 2 года назад
same question here
@sidkapoor9085
@sidkapoor9085 Год назад
You are correct, it should be the other way around.
@zimcoder
@zimcoder 5 лет назад
This has been madly helpful. I wish I knew this 2 years ago!
@shubhambahre9021
@shubhambahre9021 4 года назад
What a video. You can't miss even a second of it
@brunobarretocarvalho2315
@brunobarretocarvalho2315 5 лет назад
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!
@brunobarretocarvalho2315
@brunobarretocarvalho2315 5 лет назад
i feel stupid. i didn't get the initial a sink a weight joke. good one
@Fireship
@Fireship 5 лет назад
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.
@debunkitnow
@debunkitnow 4 года назад
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....
@splch
@splch 3 года назад
im still awaiting your response
@zigmasslusnys3596
@zigmasslusnys3596 5 лет назад
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!
@litbro8180
@litbro8180 2 года назад
This video has helped super-refine my understanding of asynchronous programming in general
@powerofpizzazz
@powerofpizzazz 4 года назад
i thought it was a 12 min video but i have to watch a 35 min video :(
@najimali32
@najimali32 3 года назад
Exactly😂
@tomihawk01
@tomihawk01 5 лет назад
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.
@Fireship
@Fireship 5 лет назад
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.
@LukePighetti
@LukePighetti 5 лет назад
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.
@jerryjeremy4038
@jerryjeremy4038 4 года назад
Really indeed very cool!!! Feels like an hour of tutorial. Thanks
@juhavehnia7862
@juhavehnia7862 Год назад
The best tutorial for async functions I've ever seen!
@xTiQ
@xTiQ 5 лет назад
Always like your video's, really educational. But I always have to watch on 0.75x speed else it goes to fast to understand.
@SahilRajput03
@SahilRajput03 4 года назад
I usually watch at 2.0 x, you it hardly is a choice of interest. It is not proportional to learning rate though. ;D
@JamieMcI
@JamieMcI 5 лет назад
Don't leave a comment! It ruins my chances for a free T-shirt! (Great video!)
@dk-gl
@dk-gl 5 лет назад
This video is the best Async/Await video on RU-vid! Keep it up!
@shankarupadhyay6067
@shankarupadhyay6067 5 лет назад
Great explanation, specially when you started it from event loop. Loved the video as well as "Fire.......base...". Thanks
@ImperiumLibertas
@ImperiumLibertas 5 лет назад
watchVideo() .then(comment()) .then(winTshirt());
@ColinRichardson
@ColinRichardson 5 лет назад
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?
@LukePighetti
@LukePighetti 5 лет назад
await watchVideo() await comment() const didWin = await winTshirt() if(didWin) console.log("😁")
@geovannyquiros5080
@geovannyquiros5080 5 лет назад
Luke Pighetti you can use it on if conditions :)
@bhupendra8429
@bhupendra8429 5 лет назад
@@LukePighetti u missed try catch block
@buttofthejoke
@buttofthejoke 5 лет назад
*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())
@algeriennesaffaires7017
@algeriennesaffaires7017 5 лет назад
So fast u made it so complicated you get me lost more than i was hhhh
@Glavin883
@Glavin883 3 года назад
Your quality of videos is absolutely incredible Sir.
@shannonhall4871
@shannonhall4871 5 лет назад
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.
@Fireship
@Fireship 5 лет назад
Thanks! Jake's talk is one of my favorite of all time.
@denniszenanywhere
@denniszenanywhere 4 года назад
Serious question. Does anyone really like this speed? He is certainly very knowledgeable but I doubt if anyone can really understand him.
@avivshvitzky2459
@avivshvitzky2459 4 года назад
I agree, I usually speed-up videos, but this one as actually too fast for me
@abdullahalkurdi6845
@abdullahalkurdi6845 5 лет назад
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
@m_usertim2755
@m_usertim2755 5 лет назад
use vlc, it supports RU-vid links natively. You can slow down video however you want.
@xpkareem
@xpkareem Год назад
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.
@tHekrack23
@tHekrack23 5 лет назад
Concise, fast a great explanation. Kudos to you sir
@AnkurGandhi8489
@AnkurGandhi8489 5 лет назад
The explanation is not very succinct. You could have explained a bit slower
@zurikzava9971
@zurikzava9971 5 лет назад
I have no idea what he's talking about, I had to stop at 3 minutes
@qazyhn94
@qazyhn94 5 лет назад
I watched video like 3 times, and its easier to rewatch it when he speaks fast
@julesl2087
@julesl2087 5 лет назад
I personally love the speed of the explanation. If I don't understand I just pause the video or rewind a bit.
@aeriox9916
@aeriox9916 5 лет назад
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
@hughpapaheffner4957
@hughpapaheffner4957 5 лет назад
This is an advanced topic, not for beginners. This is the right speed if you know what he is talking about.
@beratsulimani9823
@beratsulimani9823 5 лет назад
async winnerTShirt() { await('ME'); }
@troythompson2
@troythompson2 5 лет назад
Never disappointed with your videos Jeff!
@abdulhakimbashir6268
@abdulhakimbashir6268 5 лет назад
Always learn new stuff when I come here. Good content
@AdrianGordon1231
@AdrianGordon1231 4 года назад
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.
@Cromzinc
@Cromzinc 4 года назад
I agree, I had to put him on .75 playback.
@vnrbhat
@vnrbhat 4 года назад
I had same thought, I had to rewind many time to understand "billion loop".
@okie9025
@okie9025 4 года назад
this isnt a tutorial
@vladimirzizic6874
@vladimirzizic6874 3 года назад
Great job, however, this was very fast. It`s so much info in 12 minutes. I was pausing and rewinding hundreds of times.
@giustomuh
@giustomuh Год назад
I’ve never understand async before this video, best guide ever
@mlotov3838
@mlotov3838 2 года назад
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 :)
@glatocha
@glatocha 4 года назад
that's way too fast. I got discourage after 2 minutes
@SomeOne-sq7ir
@SomeOne-sq7ir 2 дня назад
You have to set the timeout for at least 12 minutes and 4 seconds
@wabisabi7727
@wabisabi7727 5 лет назад
you talk so fast. i cant watch whole things clearly
@HarshithJV
@HarshithJV 4 года назад
yup. way too fast. I slowed down to -0.75 speed. 😂
@gautammishra3436
@gautammishra3436 5 лет назад
Nice explanation , learned a lot about async and await. Thanks for you frequent videos on practical topics .
@jackwalker2639
@jackwalker2639 2 года назад
Discovered your channel very late. Thanks for such a clear explanation.
@BitcoinJake09
@BitcoinJake09 2 года назад
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.
@camperjett
@camperjett 2 года назад
I am binging your channel. It's been 2 weeks and am already loving web dev 😀
@kipperdev
@kipperdev 3 года назад
Awesome video! Thanks a lot 😊
@gw2realm
@gw2realm 5 лет назад
Really appreciate your videos, pushing me to be a better dev!
@micahgoodreau
@micahgoodreau 5 лет назад
awesome job. love your vids, keep the coming!
@xlabc
@xlabc 10 месяцев назад
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 🚀✨
@bhuvanesharasu
@bhuvanesharasu 4 года назад
Wow! Just wow. Have no words to explain. You were really clear..... Thanks a lot.
@yayitsryan848
@yayitsryan848 5 лет назад
This might just be the greatest Async Await tutorial ever created lol
@abdullahabdulqader4278
@abdullahabdulqader4278 4 года назад
Can't await more videos like this!
@victorbustamante1647
@victorbustamante1647 Год назад
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
@Zen-lz1hc
@Zen-lz1hc 3 года назад
Thanks for : Jake Archibald's Talk !!
@gam1l
@gam1l 5 лет назад
Very informative and well explained, thank you bro
Далее
Кошка-ГОНЧАР #шортс #shorts
00:28
Просмотров 797 тыс.
10 regrets of experienced programmers
8:16
Просмотров 1 млн
How I Made JavaScript BLAZINGLY FAST
10:10
Просмотров 212 тыс.
Mastering async code with Typescript and Javascript
39:01
JavaScript Pro Tips - Code This, NOT That
12:37
Просмотров 2,5 млн
Main filter..
0:15
Просмотров 11 млн
Gizli Apple Watch Özelliği😱
0:14
Просмотров 3,7 млн
Lid hologram 3d
0:32
Просмотров 7 млн