匿名setTimeout函数

时间:2016-01-21 19:19:39

标签: javascript

我有一种情况,我在等待一些事件发生。我看到很多关于如何使用命名函数使用setTimeout的好例子,但有没有办法使用某种匿名方法进行超时?

代码目前看起来像这样:

testForObject();

function testForObject() {
    if  ( typeof marksObjectName === 'object' )  {
           // blah blah
    } else {
       console.log('marksObjectName does not exist quite yet');
       setTimeout(function() { testForObject() }, 500 );
    }
}

所以我想知道在setTimeout期间是否有某种方法命名该函数并使用匿名方法,可能是这样的:

setTimeout(function() {
    if  ( typeof marksObjectName === 'object' )  {
           // blah blah
    } else {
       console.log('marksObjectName does not exist quite yet');
    }
}, 500);

显然这不起作用,但这是我的第一次(也是唯一的)猜测。

非常感谢你们。

3 个答案:

答案 0 :(得分:1)

您可以为传递的函数命名,例如

setTimeout(function myFunction() {
    // ...
}, 500);

答案 1 :(得分:1)

您可以按如下方式命名该功能。请注意,您需要将其置于else子句中的另一个超时内:

setTimeout(function timer() {
  if (typeof marksObjectName === 'object') {
    // blah blah
  } else {
    console.log('marksObjectName does not exist quite yet');
    setTimeout(timer, 500);
  }
}, 500);

答案 2 :(得分:0)

我相信帽子setInterval正是你要找的。

setInterval(function() { if ( typeof marksObjectName === 'object' ) { // blah blah } else { console.log('marksObjectName does not exist quite yet'); } }, 500);