jacaScript
1function blockTime(timeout) { 2 const startTime = Date.now(); 3 4 while (true) { 5 const diffTime = Date.now() - startTime; 6 if (diffTime >= timeout) { 7 return; 8 } 9 } 10} 11console.log("処理を開始"); 12blockTime(1000); 13console.log("この行が呼ばれるまで処理が1秒間ブロックされる");
こちらは11行目が呼ばれてから1秒後に13行目が呼ばれる関数のようですが、この仕組みが理解できないです。
まず5行目のDate.now() - startTimeの値が0にならないことについてです。
2行目にconst startTime = Date.now()と記されているのでdiffTimeの値は0たと思うのですが、試しにコンソールにdiffTimeを出力したら無限ループが起きてしまい、0ではありませんでした。なぜこのような挙動になるかご教授願いたいです。
また7行目のreturnが何を意味しているか分からないので教えていただけますでしょうか?
よろしくお願いします。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。