gpt4 book ai didi

Javascript 回调超时

转载 作者:搜寻专家 更新时间:2023-11-01 05:00:58 24 4
gpt4 key购买 nike

我有一把 fiddle here

谁能帮我理解为什么第一个 setTimeout 有效但在 第二个 上无效?请参阅代码注释。

在这种情况下,我想先提醒 我先来 然后在 6 秒后,它会提醒 你好,抱歉我来晚了

function iAmTakingTooLong(message1, message2, callback){       
//setTimeout(function(){ alert('test'); },6000); //THIS WILL WAIT FOR 6000 MILLISECONDS
setTimeout(callback(message1+message2),6000); //THIS WILL NOT WAIT FOR 6000 MILLISECONDS
}


iAmTakingTooLong('Hello, ', 'sorry I am late!', function(fullmessage){
alert(fullmessage);
});

alert("I am first!");

最佳答案

在这段代码中:

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

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

你需要这样的东西:

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

这里的行为不是 JavaScript 独有的。

关于Javascript 回调超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22690781/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com