Javascript回调超时

时间:2014-03-27 14:34:23

标签: javascript callback

我有一个小提琴here

有人可以帮助我理解为什么第一个setTimeout有效而不是second个有效吗?请参阅有关代码的评论。

在这种情况下,我想先提前I am first提醒,然后在6秒后提醒[{1}}

Hello, sorry I am late

1 个答案:

答案 0 :(得分:8)

在此代码中:

setTimeout(callback(message1+message2),6000);

您在参数列表中调用回调函数。 JavaScript在调用函数之前评估函数参数,因此实际传递给setTimeout()的是回调函数返回的内容。

您需要以下内容:

setTimeout(function() { callback(message1 + message2); }, 6000);

此处的行为并非JavaScript独有。