我必须在这里遗漏一些非常明显的东西,因为发生了一些相当奇怪的事情
我有一些js代码非常像这样
setTimeout(myFn(), 20000);
如果我在击中该线时正确,20秒后 myFn 应该正确运行?
在我的情况下myFn是一个ajax调用,它发生得非常快(不是在20秒,我只是不明白为什么。任何想法或指针?
答案 0 :(得分:12)
尝试
的setTimeout(myFn,20000);
当你说setTimeout(myFn(),20000)时,告诉它评估myFn()并在20秒后调用返回值。
答案 1 :(得分:4)
问题是myFn()是函数调用而不是函数指针。 你需要这样做:
setTimeout(myFn, 20000);
否则myFn将在设置定时器之前运行。
答案 2 :(得分:2)
不,正确的行是setTimeout(myFn, 20000);
在你的情况下,你实际上是在同一条线上毫不拖延地调用myFn
,并且其结果计划在20秒后运行。
答案 3 :(得分:1)
删除()
。如果你把它们,直接调用该函数。没有它们,它将函数作为参数传递。