javascript - setTimeout - 回调参数必须是一个函数

标签 javascript node.js callback 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);
        }
    })
}

关于javascript - setTimeout - 回调参数必须是一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51685383/

相关文章:

javascript - 下拉点击按钮无法更改高度

node.js - 我正在使用 IMAP npm 库来获取邮件,上面写着 "invalid credentials"

c++ - 使用类成员的C++函数回调并在main中运行它

javascript - CoffeeScript - 我应该回电吗?

javascript - 如果回调存在则执行 Callback(obj) 否则返回对象

javascript - 如何将 HTML Canvas 转换为真实图片?

javascript - 不确定如何将 gridster.serialize() 与 Gridster jQuery 插件一起使用

javascript - 添加多行 google-spreadsheet npm

node.js - 为什么我在收到 409 响应时无法读取消息或状态代码?

javascript - 如何从表格的不同行获取下拉列表的 id?