K20*_*0GH 0 javascript callback
我知道这已被问了好几百次了,不过我以前写过很多回调函数而且我觉得我对我的问题有点盲目/
我有一个功能:
function firstSend(){
client.write(Buffer.from([0x5C,0x57,0x31,0x32,0x33,0x34,0x2F]));
check(function(msg){
if(msg == true){
console.log("Lets go");
}
});
}
Run Code Online (Sandbox Code Playgroud)
调用该函数check与回调
完成后,check函数返回true:
function check(callback) {
let m;
if(message != null) m = message.trim();
if(m != "OK"){
setTimeout(check, 1000);
return;
}
return callback(true);
}
Run Code Online (Sandbox Code Playgroud)
一切正常,直到它尝试进行回调,此时它告诉我它不是一个函数.
我已经记录了回调,它记录为一个函数,所以我有点难过
你是不是在传递callback中setTimeout
setTimeout(function () {
check(callback)
}, 1000);
Run Code Online (Sandbox Code Playgroud)
代替
setTimeout(check, 1000);
Run Code Online (Sandbox Code Playgroud)
或者,您也可以使用 bind()
setTimeout(check.bind(null, callback), 1000);.
Run Code Online (Sandbox Code Playgroud)