MHH*_*MHH 2 javascript callback settimeout node.js
我的代码一直在工作,直到我将 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);
}
})
}
Run Code Online (Sandbox Code Playgroud)
Key*_*iya 11
的回调参数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);
}
})
}
Run Code Online (Sandbox Code Playgroud)
小智 9
@keyur 是正确的。根据node.js 计时器文档,setTimeout 函数将要执行的函数的名称作为第一个参数,以毫秒为单位的延迟作为第二个参数,然后是传递给函数的任何参数。
例如:
setTimeout(testFunction, 100, itemid, price);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15814 次 |
最近记录: |