小学生でもわかるasync/await/Promise入門【JavaScript講座】

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ส.ค. 2024
  • JavaScriptの非同期処理を小学生でもわかるように噛み砕いて解説しました!
    山浦清透のプログラミング講座・エンジニアキャリア情報のTH-camチャンネルです。
    よろしくお願いします^ ^
    ■独学で自走できるエンジニアになるためのプログラミング学習サービス
    dokugaku-engin...
    ■UdemyでAWSやGitの入門講座を販売中
    linktr.ee/yamaura
    ■プロフィール
    山浦 清透(やまうらきよと)
    Web系エンジニア
    1987年生まれ、福岡県出身。京都大学大学院卒。
    2014年に未経験からエンジニアに転向し、既存サービスの運営、新規事業の立ち上げ等を経験。プログラミングの修得に四苦八苦してきた経験から、開発現場で使えるエンジニアリング知識を発信。Udemy受講者数6万人。

ความคิดเห็น • 122

  • @basil_283
    @basil_283 3 หลายเดือนก่อน +2

    25歳の小学生なので助かりました。

  • @hanco6362
    @hanco6362 3 ปีที่แล้ว +28

    小学生はどうか分からんけど、今まで見た中で一番分かりやすかったっ!

  • @yosu6358
    @yosu6358 3 ปีที่แล้ว +14

    今までのasync/await/Promiseの解説動画の中でこの動画が一番でわかりすい

  • @Hbao863
    @Hbao863 3 ปีที่แล้ว +23

    めっちゃ分かりやすい。あなたこそが救世主です。

  • @hakka2314
    @hakka2314 2 ปีที่แล้ว +9

    本当に分かりやすいです!これまで読んだり聞いたりした非同期の解説の中で最も分かりやすくて、ずっと残っていて欲しい動画です…!

  • @FantaLABRA335
    @FantaLABRA335 3 ปีที่แล้ว +16

    async/awaitとPromiseの関係性がよくわかりました!
    歴史を交えた説明があると、「なぜこの仕様になったのか?」がとっても理解しやすいです!

    • @KiyotoUniv
      @KiyotoUniv  3 ปีที่แล้ว +4

      良かったです!技術には誕生した背景があるので、そこから学ぶと理解しやすいですよね😊

  • @user-tg3td8ru5s
    @user-tg3td8ru5s 2 หลายเดือนก่อน

    最高です。こういう基本を解説してくれるの本当にありがたいです。非同期はasync/awaitで書いていて、たまにPromiseやコールバック関数がでてきてジェネリック型を使用したりと理解が複雑になっていました。今まで非同期関数の直列処理がasync/awaitで並列処理がPromiseと思っていましたが、こういった歴史的背景があったんですね。

  • @carphirosima4362
    @carphirosima4362 ปีที่แล้ว +3

    苦戦していた非同期処理がやっとわかりました。感謝しきれません⭐ありがとう御座いました😃

  • @user-iz3dx8ci3q
    @user-iz3dx8ci3q 2 ปีที่แล้ว +4

    これを理解できる小学生がいましたらマジで尊敬しますわ😅😅😅

  • @madedamayanti1230
    @madedamayanti1230 3 ปีที่แล้ว +8

    私は日本人じゃなくて、コードも勉強始めたばかりなんでが、この説明はめっちゃ分かりやすいです!ありがとうございます!
    前はずっと混乱して、今分かってなってきた!

    • @KiyotoUniv
      @KiyotoUniv  3 ปีที่แล้ว +1

      よかったですー!

  • @user-fh3yr3kp4e
    @user-fh3yr3kp4e 6 หลายเดือนก่อน +1

    async/awaitとPromiseの関係が今までで一番わかりやすくて勉強になりました!!ありがとうございました!!

  • @user-vv9ik7xs4k
    @user-vv9ik7xs4k 9 หลายเดือนก่อน +4

    今まで観た動画の中で1番わかりやすかった!素晴らしい動画

  • @itsumo5656
    @itsumo5656 ปีที่แล้ว +8

    いつもながら軽快な説明と分かってもらおうする気持ちが全面に出ていてこちらにも伝わってきます。もし予備校の講師であれば人気の先生となるでしょう。内容も日頃知りたいと思う内容がおおいです。こんごもよろしくです。

  • @user-cc5ht5zi2m
    @user-cc5ht5zi2m 9 หลายเดือนก่อน +2

    この動画が無料で見れるなんて信じられません😂
    非常に分かりやすかったです!

  • @ExisVR
    @ExisVR ปีที่แล้ว +3

    本とか公式ドキュメントを全部読んで覚えてたのに、結局これ微妙に複雑で記憶に定着せず、割とすぐ忘れてしまってはまた覚え直してもすぐ忘れちゃうので、学習効率をなんとかしたいなと思っていました。
    この動画は記憶にも定着しやすそうでわかりやすくて復習にとても便利でした。
    本当に感謝です!🥷

  • @javacjapan
    @javacjapan 2 ปีที่แล้ว +4

    説明を分かりやすくすると正確性が阻害されることが多いけど、これは正確かつ分かりやすいので文句無しにスゴイ。
    コールバック地獄の状態で複雑な分岐がある処理に正しくエラーハンドリングや、エラー時の繰り返しリトライ制御とか入れようとするとマジで死ねる。

  • @Joker-gj3cc
    @Joker-gj3cc ปีที่แล้ว +2

    とてもわかりやすかったです!!小学生でもわかります。

  • @sasamaru0322
    @sasamaru0322 9 หลายเดือนก่อน +1

    ありがとうございます
    歴史的観点から説明頂けたから、とても理解しやすかったです

  • @nateha727
    @nateha727 2 ปีที่แล้ว +4

    10:26
    人類『普通に書きたーい!』で草
    そうだよね、普通に書きたいよね、普通にかけるようになってよかったねぇ

  • @Yamazae
    @Yamazae 3 ปีที่แล้ว +4

    非同期処理という言葉しか聞いたこと無かったけど、めちゃくちゃ分かりやすかった。歴史って大事だと感じた。

  • @hakusai3325
    @hakusai3325 ปีที่แล้ว +2

    3:42
    先に画面だけ表示して、後からデータを持ってくる。
    関数の引数が関数
    5:43
    待ち状態
    完了した状態
    完了した時の値をthenで繋げて、次の処理に渡せる。
    10:37
    関数に対してasyncを付ける=非同期関数 
    関数の呼び出しの前にawitを付けるとpromiseの結果が返ってくるまで(resolveされるまで)待ってくれる。 
    log関数がpromiseを返してくれる
    thenを使わなくてもいい

  • @polymetisoutis
    @polymetisoutis 7 หลายเดือนก่อน

    本当に分かり易いです🫶‼
    例示されたソースコードがこれまで読み耽ってきた解説の類に纏まりを持たせてくれました!!ありがとうございます!!

  • @cameronjp7866
    @cameronjp7866 ปีที่แล้ว +1

    説明が面白く、分かりやすかったです。ありがとうございます

  • @manapecar2109
    @manapecar2109 ปีที่แล้ว +1

    初心者にも分かりやすく解説されていて、本当に助かります!この動画何度も見に来てます!

  • @DeaDenDfromNRC
    @DeaDenDfromNRC ปีที่แล้ว +1

    歴史を振り返りながらの解説、とてもわかりやすかったです。素晴らしい解説でした。

  • @taka005
    @taka005 2 ปีที่แล้ว +2

    説明がわかりやすくて、面白かったです。

  • @user-ub8yp6zf5u
    @user-ub8yp6zf5u 3 ปีที่แล้ว +2

    小学生のうちに非同期処理に興味持ち始めたい人生だった

  • @qwevo1
    @qwevo1 3 ปีที่แล้ว +10

    Muchas gracias por la ayuda sensei, pude comprender de mejor manera. Saludos desde Tabasco, México!

    • @TheinfinityLight
      @TheinfinityLight 3 ปีที่แล้ว

      Apenas y las entiendo en mi idioma.
      Che algoritmo de youtube ahora me las recomienda en japones
      Jajajaja

  • @KiwamuOkabe
    @KiwamuOkabe 3 ปีที่แล้ว +3

    コールバック地獄まではこのスピードで理解できたのですがPromiseから速度が上って理解が辛かったです。

  • @aya2222
    @aya2222 3 ปีที่แล้ว +2

    昨日からいろんな動画みたり色々調べたりしてたけど、この動画で概要がつかめました。ありがとうございます!

  • @guiya8496
    @guiya8496 3 ปีที่แล้ว +3

    今までで一番わかりやすいですねぇ

  • @kazumachihaya337
    @kazumachihaya337 3 ปีที่แล้ว +2

    今までなんとなくで使っていたのですが、この動画を見て完全に理解できました!!

  • @user-qu3tz2qy3g
    @user-qu3tz2qy3g 2 ปีที่แล้ว +3

    非同期処理を同期処理として動かすのがasync awaitなんですね!

  • @カツ丼ご飯マシマシで
    @カツ丼ご飯マシマシで ปีที่แล้ว

    小学生でjavascript勉強してるけどとても分かりやすかったです!

  • @user-ou3fe1sr4x
    @user-ou3fe1sr4x 7 หลายเดือนก่อน

    僕も現在開発で使っていますが既存の処理を真似したりしてちゃんとわかってないのです!この解説動画はかなりありがたいです!!

  • @user-zs5sr6yo8c
    @user-zs5sr6yo8c 3 ปีที่แล้ว +6

    asyncってエイシンクと読むと思っていました

  • @Mr-ej6cu
    @Mr-ej6cu 3 ปีที่แล้ว +3

    とても分かりやすかったです。時代背景が分かると理解しやすいですね。

  • @user-wn8gz4ei8k
    @user-wn8gz4ei8k ปีที่แล้ว +1

    async/awaitまでの変遷が分かりやすかったです!
    途中の「コールバックじごーく」などはいらなかったかな笑

  • @NGotoh-wg7bo
    @NGotoh-wg7bo ปีที่แล้ว +1

    そごいチャレンジ精神。さすがですね。

  • @user-vv8qu5oi9d
    @user-vv8qu5oi9d ปีที่แล้ว

    非常にわかりやすかったです。ありがとう

  • @mitsuichi9230
    @mitsuichi9230 3 ปีที่แล้ว +2

    めっちゃわかった 感謝です

  • @ykou
    @ykou 3 ปีที่แล้ว +2

    初心者に分かりやすくて助かりますー

  • @user-tf8px9qt8g
    @user-tf8px9qt8g ปีที่แล้ว

    まじでわかりやすい!ありがとうございます!!😊

  • @yusukem
    @yusukem 3 ปีที่แล้ว +3

    小学生じゃないですが、分りやすかったです!
    コードの開発の歴史からたどるのは、作った人の意図をくみ取れて、
    凄く分りやすく、勉強にもなります!!!!

  • @morinosuke
    @morinosuke 3 ปีที่แล้ว +1

    最近は、フロントもバックもjavascriptが多くなってきているようなので、こういうお話しは助かります!

  • @KiyotoUniv
    @KiyotoUniv  3 ปีที่แล้ว +1

    コードの字が後半小さくて読みにくいので、今回実行したコードをアップしました!
    gist.github.com/kiyodori/94cdab994e2925a0ac2477eb02ff75d7

  • @funsaigyokusai08
    @funsaigyokusai08 3 ปีที่แล้ว +1

    めっっっっっっっっっっっちゃわかりやすい

  • @user-jy8zn4kq7p
    @user-jy8zn4kq7p 3 ปีที่แล้ว +2

    C#のタスクやasync/awaitの時代の流れとかも、色々発展しましたよね。

  • @okojo_MK
    @okojo_MK 6 หลายเดือนก่อน

    4:17 クレバー!!の勢い好きwww

  • @kuro0315
    @kuro0315 3 ปีที่แล้ว +1

    めちゃくちゃわかりやすい

  • @WhiskeyHazelnuts
    @WhiskeyHazelnuts 2 ปีที่แล้ว +1

    ありがたい!

  • @user-gi1yh5lz2t
    @user-gi1yh5lz2t 3 ปีที่แล้ว +1

    わかりやすかったです!

  • @jaguar_imo3866
    @jaguar_imo3866 3 ปีที่แล้ว +2

    とてもわかりやすいですし、テンポも聴きやすいです!
    顔を振るたびに音が近くに行ったり遠くに行ったりするのが少し聞きづらく感じたので、ピンマイクなどを導入しても良いかもと思いました!

  • @kakkoiinippon
    @kakkoiinippon ปีที่แล้ว

    🇯🇵🇯🇵🇯🇵説明もいいし、演技もあっていいですね。令和五年

  • @ababaroid6083
    @ababaroid6083 3 ปีที่แล้ว +2

    最近はJavaScript触ってないけど分かりやすかったと思います
    けど小学生は無理じゃないかな・・・
    まだ知っている事を前提とする単語がいっぱい出てきていたので

  • @animelife5166
    @animelife5166 ปีที่แล้ว +3

    説明わかりやすいだけに、時々入る謎の芝居が残念です...
    普通に喋ってくれたら最高でした

  • @falconno6554
    @falconno6554 ปีที่แล้ว +1

    C言語から始めたので非同期処理自体はなんとなくわかっている(つもり)だったのですが、JavaScriptでPromiseやasync/awaitってのがよくわからなかったですね…
    やっとわかるようになりましたが

  • @NS-qq6nr
    @NS-qq6nr 3 ปีที่แล้ว +14

    内容はすごく勉強になりましたが、言い方(途中のよく分からないキャラの喋り方)が生理的に受けつけず10分で我慢できなくなり脱落しました。

  • @rararaundoudb
    @rararaundoudb 3 ปีที่แล้ว +1

    鬼わかったし、めっちゃ便利やん、すげー

  • @te5222
    @te5222 2 ปีที่แล้ว +1

    アラサーでもわかりました

  • @yukisakuma6230
    @yukisakuma6230 3 ปีที่แล้ว +4

    使えるだけじゃなく、ここまで説明できるまで理解深めないとな!頑張ろう!!!

  • @sakana482
    @sakana482 3 ปีที่แล้ว +1

    止めて見るとき手がかぶって邪魔だから指し棒とかでお願いできませんか

  • @paseri9697
    @paseri9697 11 หลายเดือนก่อน

    playwrightでドツボにはまっています

  • @jp-kq9xb
    @jp-kq9xb 2 ปีที่แล้ว

    中学生には理解できました

  • @tadakuniyasuda8214
    @tadakuniyasuda8214 3 ปีที่แล้ว

    わかりやすいです。ありがとうございます。ただし、実際にasync/await を使用するために、練習が必要です。どこで練習できますか?

  • @willywonka6697
    @willywonka6697 3 ปีที่แล้ว +1

    非常にわかりやすかったです!ありがとうございました。
    質問です。Can I useでasync/await, Promiseを調べると、IE11では対応していないようなのですが、IEでも非同期処理を実現したい場合は、コールバック地獄と向き合わざるを得ないということになるのでしょうか?

    • @KiyotoUniv
      @KiyotoUniv  3 ปีที่แล้ว +1

      抜け道的な方法があります!
      [TypeScript]IE11でも手軽に動くawait/async
      qiita.com/SoraKumo/items/9ab9382419e78dea9b98

  • @sanko4198
    @sanko4198 2 หลายเดือนก่อน

    なんでコールバックだとバックグラウンドで走るのかがわかりません

  • @nish5922
    @nish5922 2 ปีที่แล้ว

    0:00 導入
    2:40 本編開始

  • @shinhashi2057
    @shinhashi2057 3 ปีที่แล้ว

    動画を見てスッキリしました よく分かりました。ありがとうございます😊

  • @shinichirouikebe2911
    @shinichirouikebe2911 3 ปีที่แล้ว +1

    前より上手く書けるかもしれない

  • @nyarbuncle
    @nyarbuncle 3 ปีที่แล้ว +1

    RとPy使ってデータ収集してる小学六年生でもわかりやすいって言ってたよ先生。

  • @yamat0jp
    @yamat0jp ปีที่แล้ว

    さいこう〜

  • @soshina3
    @soshina3 4 หลายเดือนก่อน

    12:03

  • @Sofia_-Grant
    @Sofia_-Grant 3 ปีที่แล้ว

    *【質問】*
    async自体がPromiseインスタンスを返すなら、10:45にあるPromiseを返す関数をasyncに変えることも可能かと思い下記を実行しましたが、1,2,3が同時に出力されてしまいました。。。これはasyncを実行した時点で即座にfulfilledが返されるからという認識であっていますかね..?
    func = async () => {
    await log(1);
    await log(2);
    await log(3);
    };
    log = async (num) => {
    setTimeout(function () {
    return console.log(num);
    }, 1000);
    }
    func();

  • @ken-vh2fp
    @ken-vh2fp 3 ปีที่แล้ว +2

    寸劇は素人には難しいので、デジタルで演出するのが良いと思います。内容は素晴らしいです。

  • @frisk_seed
    @frisk_seed 2 ปีที่แล้ว

    10:57
    thenメソッド内でreturnするとその値でresolve した状態の新しいPromiseオブジェクトを返すから、thenメソッド内でnew Promiseをして新しいオブジェクトを作る必要はないと思うんだけど違ったっけ?
    書いても動くけどそんな面倒なことをしなくてもいいのがPromiseチェーンのいいところだった気が…

  • @user-ko7ls7fe9z
    @user-ko7ls7fe9z 4 หลายเดือนก่อน

    こういう人が職場にいたらなぁ

  • @vstar8659
    @vstar8659 3 ปีที่แล้ว +1

    なるほど、わかりました(>_

  • @kotaro4734
    @kotaro4734 3 ปีที่แล้ว

    非同期処理にasync/awaitを付けて、わざわざ普通の同期処理にしてるんですよね。
    それなら最初から同期処理をデフォにして、非同期処理したいときだけasyncを付けるとか、
    そんな仕様にしてほしいですわJavaScriptさん。

  • @godzillaking8358
    @godzillaking8358 3 ปีที่แล้ว +1

    関数の読み方ちゃうって要あるよな

  • @yoshi8171
    @yoshi8171 3 ปีที่แล้ว +1

    寸劇風、お気に入りですね!笑

    • @KiyotoUniv
      @KiyotoUniv  3 ปีที่แล้ว +1

      Yoshiさん、僕なりの試行錯誤です笑。
      難しい内容もできる限り分かりやすく、あとできれば面白く伝えたいと思っていて、それで寸劇風にチャレンジしては、なんか違うと思っては普通のスタイルに戻し、でもやっぱり面白くしようと寸劇風にチャレンジしてはを繰り返してます笑

  • @davidaxelgonzalezflores3536
    @davidaxelgonzalezflores3536 3 ปีที่แล้ว +1

    A comment in english!

  • @xign17
    @xign17 3 ปีที่แล้ว +1

    小学生には理解できないとおもう。小生には理解できましたけど

  • @mouushida9025
    @mouushida9025 3 ปีที่แล้ว +3

    某偉人系の解説口調になって笑いました。( ´艸`)

  • @FizmimiFiz
    @FizmimiFiz 3 ปีที่แล้ว +1

    ヒヨコ<パラダイスみてーな国が作りてえ

  • @user-xn2ju3gf6v
    @user-xn2ju3gf6v 3 ปีที่แล้ว +2

    めちゃくちゃ分かりやすいのに文句言ってる人はろくに勉強してないんだろうな笑

  • @TY-dn6mj
    @TY-dn6mj 6 หลายเดือนก่อน +2

    ところどころ変なテンションで話さなければすごくわかりやすいです。

  • @user-xl8mr6dr7c
    @user-xl8mr6dr7c 3 ปีที่แล้ว

    小学生おじさんでもわかったよ!

  • @groundzero6175
    @groundzero6175 2 ปีที่แล้ว

    アシンクではなくエイシンクな気がする

  • @azeru1210
    @azeru1210 3 ปีที่แล้ว +1

    jsのは知らんけども、async/awitは基本的にケツを蹴る順番を定義してるだけになるはず🤔

  • @maild3pmaild
    @maild3pmaild 3 ปีที่แล้ว +1

    中指で指す人意外と多い

  • @metboos506
    @metboos506 ปีที่แล้ว

    今の小学生は本当に賢いな~ オジサン(;´д`)トホホ

  • @yuuttana1223
    @yuuttana1223 3 ปีที่แล้ว +5

    言い方が笑

    • @KiyotoUniv
      @KiyotoUniv  3 ปีที่แล้ว

      悩んだ末よく分からなくなってああいう言い方に着地しました笑

  • @yayuyo7188
    @yayuyo7188 3 ปีที่แล้ว

    await 演算子以下に記述されたコードの実行も待つということでいいですかね?
    例えば
    func = async () => {
    await log(3);
    console.log("done");
    ...
    としたらconsole.logの部分もlog(3)が実行される(resolveが返る)までは実行されないと

  • @Yoran91
    @Yoran91 ปีที่แล้ว

    いきなり消費者金融出てきた

  • @thiaresaez
    @thiaresaez 3 ปีที่แล้ว

  • @user-od2uo9dd8v
    @user-od2uo9dd8v 2 ปีที่แล้ว

    声と顔がどことなく西島隆弘に似てる

  • @misogi
    @misogi 3 ปีที่แล้ว +1

    「アシンク」が気になりました(小並感)

  • @user-iq3nj2ez7b
    @user-iq3nj2ez7b 4 หลายเดือนก่อน

    へんな芝居以外良い

  • @novacofee
    @novacofee ปีที่แล้ว

    わかりやすかったけど、小学生には無理だと思う