我知道这已经被问了好几百次了,但是之前我已经编写了很多回调函数,我觉得我对我的问题有点盲目/
我有一个功能:
function firstSend(){
client.write(Buffer.from([0x5C,0x57,0x31,0x32,0x33,0x34,0x2F]));
check(function(msg){
if(msg == true){
console.log("Lets go");
}
});
}
通过回调调用函数check
check函数在完成时返回true:
function check(callback) {
let m;
if(message != null) m = message.trim();
if(m != "OK"){
setTimeout(check, 1000);
return;
}
return callback(true);
}
一切正常,直到它试图进行回调,此时它告诉我它不是一个函数。
我已经记录了回调,它记录为一个功能,所以我有点难过
答案 0 :(得分:6)
您没有在callback
setTimeout
setTimeout(function () {
check(callback)
}, 1000);
而不是
setTimeout(check, 1000);
或者,您也可以使用bind()
setTimeout(check.bind(null, callback), 1000);.