-2

たとえば、JavaScript コードは次のようになります。

<!DOCTYPE html>
<html>
    <body>
        <script>
            var val = 0;

            var p2 = setInterval(function(){proc2()},1000);
            function proc2()
            {
                // while (val == 0);
                alert(val);
                clearInterval(p2);
            }

            var p1 = setInterval(function(){proc1()},1000);
            function proc1()
            {
                val = 1;
                clearInterval(p1);
            }

        </script>

    </body>
</html>

functionproc2()で、 の値が 1 になったときに実行したいvalので、行を追加しましたwhile(val==0);が、機能しません。ブラウザが動かなくなる。それの何が問題なのですか?そして、JavaScript の setInterval 関数に条件チェックを追加する正しい方法は何ですか?

4

1 に答える 1

0

while ループでスタックします。代わりに setInterval で return を使用して、条件が満たされない限りコードが実行されないようにします。

while の問題は、サイクルを繰り返し続け、決してループを離れず、他の呼び出しのためにスレッドを解放することです。

于 2013-08-03T20:32:33.277 に答える