Node.js - 无法在 if 语句中使用回调



嗨,我正在尝试在 if 语句中执行回调,但我得到"类型错误:回调不是函数" 这是我的代码:

socket.on('authenticate', function (data, callback) {
// this works
callback("false");
// this doesn't work
if (data == "abc") {
callback("true");
}
});

始终检查是否传递了可调用函数,至少只执行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); 
}
});

最新更新