我有一个小提琴here
有人可以帮助我理解为什么第一个setTimeout
有效而不是second
个有效吗?请参阅有关代码的评论。
在这种情况下,我想先提前I am first
提醒,然后在6秒后提醒[{1}}
Hello, sorry I am late
答案 0 :(得分:8)
在此代码中:
setTimeout(callback(message1+message2),6000);
您在参数列表中调用回调函数。 JavaScript在调用函数之前评估函数参数,因此实际传递给setTimeout()
的是回调函数返回的内容。
您需要以下内容:
setTimeout(function() { callback(message1 + message2); }, 6000);
此处的行为并非JavaScript独有。