为什么setTimeout没有延迟执行函数?

时间:2014-11-02 09:45:47

标签: javascript callback delay

我写了以下代码:

// callback function
function tryMe (param1) { 
    alert (param1 ); 
} 

// callback executer 
function callbackTester (callback) { 
    callback(); 
} 

// test function
    callbackTester (  function() {
        setTimeout(  tryMe(1), 10000);
     })

我在脚本执行后立即看到警报。

预期结果 - 请看延迟10秒的警报。

我哪里错了?

如何更正此代码?

1 个答案:

答案 0 :(得分:4)

你可以这样做:

setTimeout(function() { tryMe(1) }, 10000);

在这种情况下,将在指定的时间间隔后调用tryMe(1)函数。在您的示例中,您立即调用该函数。

基本上setTimeout函数将函数指针作为第一个参数,而你传递tryMe(1)作为第一个参数,这是执行此函数的结果。