SlideShare a Scribd company logo
1 of 26
JavaScriptフロー制御
自己紹介
@nktafuse
s1240075
ウェブアプリケーション、バックエンド
さえかの2期楽しみ。
もくじ
1. フロー制御とは
2. ESによる制御
3. 外部ライブラリによる制御
4. おまけ、おわりに
(注意)上記のように分けてますが中身混ざってます。
ご了承ください。
1.フロー制御とは
フロー制御 is 何?
非同期タスクのグループを
シーケンス化すること。
非同期タスクのグループを
シーケンス化すること。
つまり?
JavaScriptはイベント駆動型
だから、同期的に処理して
くれない!!
基本、2種類ある。
シリアル実行
パラレル実行
シリアル(直列)実行
開始 タスク1 タスク2
タスク3
タスク3が完了
したら先に進む
パラレル(並列)実行
開始
タスク1
タスク2
タスク3
タスク全てが完了
したら先に進む
2. ES 6/7で制御
Promise
Promiseオブジェクトを作る。
Promiseの中に処理を書く。
終わったらresolveで終了。
thenチェーンで次の処理につなげる。
Async/Await (+Promise)
Promiseから、さらにわかりやすくするために実装された。
Promiseとつかう。
awaitでasyncの関数
を止める。
promiseのresolve
を待つ。
3. 外部ライブラリで制御
(自分の中では)
async.jsが王道。
documentがしっかりしてる。
async.js(series)
async.js(parallel)
他にこんなのがある
co :イーテレーター、ジェネレターと一緒に使っ
て制御してく感じ。トリッキーでかっこいい。
highland.js : メゾットチェーンでめちゃめっ ち
ゃつなげる。関数的アプローチらしい。
bluebird : Promiseの拡張版って感じ。
4. おまけ、おわりに
また、こんなのがある。
また、こんなのがある。
良いJSライフを!

More Related Content

More from Koki Natsume (8)

Spring aizu-lt-2018
Spring aizu-lt-2018Spring aizu-lt-2018
Spring aizu-lt-2018
 
Goで学ぶDApp(aizu.go#2)
Goで学ぶDApp(aizu.go#2)Goで学ぶDApp(aizu.go#2)
Goで学ぶDApp(aizu.go#2)
 
Pwaを作ってみる(ejリクールトlt 2017/10/18)
Pwaを作ってみる(ejリクールトlt 2017/10/18)Pwaを作ってみる(ejリクールトlt 2017/10/18)
Pwaを作ってみる(ejリクールトlt 2017/10/18)
 
Vue template-parserを作っている話
Vue template-parserを作っている話Vue template-parserを作っている話
Vue template-parserを作っている話
 
Alt#0x008 2017/5/20
Alt#0x008 2017/5/20Alt#0x008 2017/5/20
Alt#0x008 2017/5/20
 
機械学習勉強会2017/5/14
機械学習勉強会2017/5/14機械学習勉強会2017/5/14
機械学習勉強会2017/5/14
 
Alt2016
Alt2016Alt2016
Alt2016
 
機械学習勉強会2017/2/19(nn基礎)
機械学習勉強会2017/2/19(nn基礎)機械学習勉強会2017/2/19(nn基礎)
機械学習勉強会2017/2/19(nn基礎)
 

Gcflt会2017/4/2