将工作函数插入 setTimeout 调用时发生 TypeError
TypeError occurs upon inserting a working function into a setTimeout call
我正在使用的一段代码在包含如下所示的第一行代码时可以完美运行。但是,当我用下面显示的第二行代码替换该行时,会抛出“TypeError [ERR_INVALID_CALLBACK]: Callback must be a function”错误。关于我可以做些什么来解决这个问题有什么建议吗?谢谢
getData(body);
setTimeout(getData(body), 0);
JavaScript setTimeout(function[, delay, arg1, arg2, ...])
将要执行的函数的名称作为其第一个参数。 强调函数名称。这意味着在您的情况下 getData
而不是 getData()
或 getData(body)
。第二个参数是函数执行前等待的时间。下一个参数(或逗号分隔的参数列表)是您要按照函数期望的顺序提供给函数的参数。这意味着编写正确,您的代码应如下所示:setTimeout(getData, 0, body)
.
通过将 delay 设置为 0,看到您的 setTimout
函数根本没有延迟,您可以正常调用 getData(body)
并且它会完成它的工作。只是说.
我正在使用的一段代码在包含如下所示的第一行代码时可以完美运行。但是,当我用下面显示的第二行代码替换该行时,会抛出“TypeError [ERR_INVALID_CALLBACK]: Callback must be a function”错误。关于我可以做些什么来解决这个问题有什么建议吗?谢谢
getData(body);
setTimeout(getData(body), 0);
JavaScript setTimeout(function[, delay, arg1, arg2, ...])
将要执行的函数的名称作为其第一个参数。 强调函数名称。这意味着在您的情况下 getData
而不是 getData()
或 getData(body)
。第二个参数是函数执行前等待的时间。下一个参数(或逗号分隔的参数列表)是您要按照函数期望的顺序提供给函数的参数。这意味着编写正确,您的代码应如下所示:setTimeout(getData, 0, body)
.
通过将 delay 设置为 0,看到您的 setTimout
函数根本没有延迟,您可以正常调用 getData(body)
并且它会完成它的工作。只是说.