javascript - setTimeout - 回调参数必须是一个函数
问题描述
我的代码一直在工作,直到我将 node.js 更新到 8.11.3 版
现在,当尝试使用 setTimeout 调用函数时,我总是得到错误“回调参数必须是函数”。
function testFunction(itemid, price) {
var url = 'https://example.com';
var options = {
method: 'get',
url: url
}
request(options, function (err, res, body) {
var response = JSON.parse(body);
if(response.status == 'fail'){
setTimeout(testFunction(itemid, price), 100);
}
})
}
解决方案
回调参数setTimeout
必须是一个函数。像这样写。未经测试,但它应该可以工作。
function testFunction(itemid, price) {
var url = 'https://example.com';
var options = {
method: 'get',
url: url
}
request(options, function (err, res, body) {
var response = JSON.parse(body);
if(response.status == 'fail'){
setTimeout(function () {
testFunction(itemid, price);
}, 100);
}
})
}
推荐阅读
- python - Python Web Scraping:如何获取内部站点的 HTML
- python - Flask 中的用户身份验证 - 如何在函数中实现?
- java - JDA - 机器人听取其他机器人的反应
- python - 从 S3 存储桶中读取大量 CSV 文件
- ios - 使用委托在两个以上视图控制器之间传递数据
- python - 有什么方法可以正确合并熊猫中具有不同暗度的两个时间序列?
- c - C 意外标识符 - For 循环增量
- java - 错误:不兼容的类型:CAP#1 无法转换为 int[](Java、Android Studio)
- ruby-on-rails - 如何使用draper和cancancan?
- r - 在 R 中按条件和相关结果生成一系列时间戳