【javascript】特定の条件を満たすまで次の処理を待つ

javascript で特定の条件を満たすまで処理の開始を遅らせる方法です。
僕の場合は、ひとつの動作で functionA, functionB のふたつが同時に発生して並行して処理を行うところを、
functionA が終了してから functionB を開始するようにしたくて調べました。

新みのる日記 「[Javascript] javascript で wait処理」 を参考にしました。

今回は例として、 functionA の開始時にフィールド変数の aRunning が true になり、終了すると false になるとします。

最初は A が処理中なら B の処理が進まなければいいと考え、

function = functionB(){
   while(aRunning){}
   -- functionB の処理 --
}

としました。
これだと無限ループの処理が重くなりすぎてしまい A の処理が一向に進まなくなってしまいました。

そこで上のブログを参考に

function = functionB(){
   wait = function(){
      if(!aRunning){
         clearInterval(wait);
         -- functionB の処理 --
      }
   }, 1);
}

と変更し、 aRunning のチェックに 1ms だけインターバルを設定するとできました。
ほとんど参考ブログのままですね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です