您好我正在尝试在if语句中执行回调,但我得到" TypeError:回调不是函数" 这是我的代码:
socket.on('authenticate', function (data, callback) {
// this works
callback("false");
// this doesn't work
if (data == "abc") {
callback("true");
}
});
答案 0 :(得分:0)
始终检查是否通过了可调用函数,至少只执行if(callback)
在您的问题中,可能存在客户端不等待回调的情况(完成发出调用而不传递回调参数)。
试试这个解决方案:
socket.on('authenticate', function (data, callback) {
console.debug('socket authenticate:', data); // for debug purposes
if (data == "abc") {
if(callback) { // callback may not be passed
callback(null, true); // keep in mind in callbacks first argument is error second is result
}
return; // return will prevent execution to go down, because most of times used for resulting call.
}
if(callback) { // callback may not be passed
callback("Not authenticated", false);
}
});