Javascript I';我不知道为什么,但它只是说;完成了&引用;3秒后,它应该说;采购…“;

Javascript I';我不知道为什么,但它只是说;完成了&引用;3秒后,它应该说;采购…“;,javascript,settimeout,Javascript,Settimeout,基本上,我想做的是做一个有趣的购买代码测试(我知道它实际上不会买任何东西) 这就是你需要的吗 您的帖子中有几个问题: 30000毫秒是30秒 另外,您在Purchase函数中调用了Purchase(),使函数递归,并将使Purchase一次又一次地执行 另外,setTimeout将函数引用(不是函数执行)作为第一个参数,该参数将在设置为第二个参数的间隔后执行。在setTimeout(Purchase())中添加()将导致Purchase函数立即执行。从Purchase中删除()也会在调用setT

基本上,我想做的是做一个有趣的购买代码测试(我知道它实际上不会买任何东西)

这就是你需要的吗

您的帖子中有几个问题:
30000
毫秒是30秒

另外,您在
Purchase
函数中调用了
Purchase()
,使函数递归,并将使Purchase一次又一次地执行


另外,
setTimeout
将函数引用(不是函数执行)作为第一个参数,该参数将在设置为第二个参数的间隔后执行。在
setTimeout(Purchase())
中添加
()
将导致
Purchase
函数立即执行。

从Purchase中删除()也会在调用setTimeout后立即执行(),因此将done移到函数Purchase的末尾您认为您的代码在做什么?你认为这条
setTimeout
行将做什么?哦,谢谢,这很好用!
function Purchase() {
    document.getElementById("Button1").innerHTML = "Purchasing..."
    window.setTimeout(Purchase(), 30000)
    document.getElementById("Button1").innerHTML = "Done!"
}
function Purchase() {
    document.getElementById("Button1").innerHTML = "Purchasing..."
    window.setTimeout(() => {
      document.getElementById("Button1").innerHTML = "Done!"
    }, 3000)  
}