前回、基本的なところをお試ししてみましたが、

もう少しなんかやらせてみたいので、数あてゲームをやらせてみます。

ランダムな数字を、ヒント(High or Low)を基に当てる超楽しいゲームね。。。

実用性は皆無ですが、条件分岐、ループ、演算と、一通りのことを試すのにはいいかなと。

HTMLはこんな感じにしました。

まぁ、素直なコードかと。。。

問題のNightmare部ですが、ループや条件分岐を使うので、Promise/thenではきついと思われます。

ので、Generatorとvoを使用します。

1
> npm install vo --save

こちらを激しく参考にさせてもらいました

んで、できたコードがこちら。

Generatorの使い方がミソですな。

今回function/yieldの概念を初めて使いましたが、<a href=“https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/function” rel=“noopener” target=”_blank”>この辺読んでも意味が分かりません。

要はyield使うときは「function*」にしとけってことでしょうか?

今までコールバックとかPromiseとかで独特な記述になってた所が、素直に書けるようになったようです。

印象としてはC#のasync/awaitみたいな感じでしょうかね。

JSエンジンによってかなり実装が違うようです。ブラウザ向けのスクリプトじゃまだ使えなさそう。

実行するとこんな感じ

Nightmare使えそうです。

MoneyForwardが非対応なサービスのデータを、自動で取り込めるようにしたいなぁ。

さしあたってAEONのネットスーパー。対応してくんないかな。