このコードの問題は何ですか
var a=function()
{
setInterval(function(){document.write("a");},1000);
}
function b(callback)
{
callback();
alert(2);
}
b(a); // alert 2
通話がまだ終わっていないので、アラートを表示すべきではありませんか?
このコードの問題は何ですか
var a=function()
{
setInterval(function(){document.write("a");},1000);
}
function b(callback)
{
callback();
alert(2);
}
b(a); // alert 2
通話がまだ終わっていないので、アラートを表示すべきではありませんか?
setInterval関数にコールバックを追加して、1000ミリ秒の遅延が発生するまでコールバックが実行されないようにすることができます。例:
var a=function(callback) {
setInterval(function(){document.write("a"); callback(); },1000);
}
function b() {
alert(2);
}
a(b); // alert 2 AFTER the 1000 millisecond delay
コードは期待どおりに実行されています。SetInterval は、指定された時間後に割り当てられた関数を起動する残りのコードの実行を保持しません。
したがって、アラートが表示されてから document.write が表示されます。