JS setTimeout不会等待使用Scratchpad

时间:2017-05-06 01:10:46

标签: javascript

考虑以下脚本



function func()
{
  alert('b');
  if (document.readyState != 'complete')
    setTimeout(func(),1000);
  else
    alert('a');
};

window.location.replace('https://www.google.com/');
setTimeout(func(),5000);




当我运行脚本时,我立即收到警报而不等待5秒钟。

1 个答案:

答案 0 :(得分:0)

您需要从func中删除括号:

 setTimeout(func,5000);

否则立即调用该函数,而不是作为稍后调用的函数传递。



function func()
{
  alert('b');
  if (document.readyState != 'complete')
    setTimeout(func,1000);
  else
    alert('a');
};

setTimeout(func,5000);