・散歩
亀戸まで。
・プログラミング
いよいよ非同期処理が出てきた。
上のサイトのアニメーションAを○秒かけて実行したあとにアニメーションBを実行というようなことが必要になったからだ。技名ウィンドウ表示→攻撃エフェクトというのがしたくて。
setTimeoutという1秒後に○○するみたいな機能がJavascriptにはあってそれでやろうとしたけど、なぜかsetTimeoutの文のあとに普通の文がある場合にあとのほうにあるのが先に実行されてしまう(多分)、というのに悩まされる。
これも上のサイトに答えが書いてあった。
非同期でない言語であれば、3行目の
setTimeout()
で処理が一旦止まり、スクリプトに書いた順番に文字列が出力されるところですが、 非同期言語であるJavaScriptでは処理が止まらず、#1
が実行されたあと、即座に#3
以降が実行されてしまいます。
ああ、だから後のほうにあるのが1秒またずに実行されるのかなるほどと思った。
けど非同期言語と非同期処理がごっちゃになり再びわけが分からなくなった。WEBサイト作り想定の説明ばかりでぴんとこない。
とりあえず上のサイトでダサいと言われているsetTimeoutを多段で使う方法を試してみる。
しかし複雑化してしまった自前のシステムはそんなアニメA→アニメBというような単純なものじゃなくウェイトを挟んで実行したい処理が6こくらいある。
そしてコールバック地獄に。
promiseといのもよーわからない。
配列のfilterとかreduceというような小難しいメソッドも未だによーわからない。
非同期処理といいそこらへんを自在に使いこなせるようになってようやく中級者って感じなのかなぁ。
以上
1年前