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

维克多 P。

嗨,我正在尝试在 if 语句中执行回调,但我收到“TypeError:回调不是函数”这是我的代码:

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); 
    }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章