## 8回目 ## 前回やったこと 前回windowsだとさまざまな問題があるということがわかったのでcu-bricks-elm-masterを動かしてみて起こりうる問題点を探す ## 今回の目標 動作確認を行う 待ちが使えなかった理由を解決する ## 結果 consoleコマンドの一覧 https://developer.mozilla.org/ja/docs/Web/API/console 待ちが使えなかった理由を解決する 前回奥居先生に直してもらいawait cube.move()で動くことが分かった。 なぜこれで動いて、前のプログラムで動かなかったかを考えたときに、promiseを用いた非同期処理が間違っているのではないかと考えていたが、いろいろpromiseを用いた、停止処理を調べた感じ間違っていなかったので、他に原因があると考えました。 いろいろ試す中でtoiojs.stopMovingに原因があるのではないかと考え, 動くことが明確であるawait cube.move()の 後ろにtoiojs.stopMoving()をつけてみたところ動かなかったので、stop関数に原因があるという結果に行き着きました。 [awaitについて](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/await) [cube.stop()](https://toio.github.io/toio.js/classes/_toio_cube.cube.html#stop) <前回のプログラム> ``` toiojs.moveForward = async function (sec) { cube.move(50, 50, 0); await toiojs.wait(sec); toiojs.stopMoving(); } ``` 結果:2回処理がうまく行かない <先生のプログラム> ``` toiojs.moveForward = async function (sec) { await cube.move(50, 50, sec * 1000) } ``` 結果:複数処理がうまく行く <変更したプログラム1> ``` toiojs.moveForward = async function (sec) { cube.move(50, 50, 0); await toiojs.wait(sec); } ``` 結果:ずっと直進する <変更したプログラム2> ``` toiojs.moveForward = async function (sec) { cube.move(50, 50, sec * 1000) } ``` 結果:複数処理されない(1回のみ) <変更したプログラム3> ``` toiojs.moveForward = async function (sec) { await cube.move(50, 50, sec * 1000); toiojs.stopMoving(); } ``` 結果:複数処理ができない(1回のみ) [stop()について](https://www.jquerystudy.info/reference/effects/stop.html)