async/awaitを使い順番を守ってLINE Notify経由で通知を送るテスト
Node.jsで 0
, 1
, 2
, 3
, ..., 9
と順番にLINEへ通知を送りたかったが、非同期処理をfor文で回していたため、順番が前後して思った通りに通知を送れなかったことがあった。
順番が前後する問題をPromiseを使い解決を試みたが、Promiseでは不定回数の処理を回すことが難しいという新たな問題が発覚した。
後にasync/awaitを使うことでこの問題を解決できることがわかり、nodeのバージョンを6系(長期サポート版)から7系(最新機能版)に変更し、この問題をasync/awaitを使って解決を試みてみた。
settings.js
にLINE Notify経由で通知したいトークルームのトークンを入れます。
node line
で、1秒ごとに 0
, 1
, 2
, 3
, ..., 9
と通知が来ます。
(await sleep(1000);
の行をコメントアウトしても順番通り通知が来るはずです)
- macOS Sierra 10.12.4
- node v7.9.0