【问题标题】:Why does my nodejs function always return null为什么我的nodejs函数总是返回null
【发布时间】:2019-10-17 11:10:57
【问题描述】:

我定义了 2 个函数并从另一个函数调用一个函数。结果始终为空

var abc = (req,callBack) => {
DB Operation
.
.
.
.
console.log(result);
callBack(null,result);
}


var def = (req, callBack) => {
abc(req,(response) => {
   callBack(null,result);
});
}

console.log 打印实际结果,但函数 def 的回调始终返回 null。我在这里错过了什么。

【问题讨论】:

  • 您提供的不是真正的代码。当你发布的不是 JS 时,不可能在 JS 方面帮助你。
  • 请发帖minimal reproducible example 向社区提供所需的信息,以便为您提供有用的反馈。

标签: javascript node.js asynchronous callback async-await


【解决方案1】:

我只是忘记在函数中添加错误。

var abc = (req,callBack) => {
DB Operation
.
.
.
.
console.log(result);
callBack(null,result);
}


var def = (req, callBack) => {
abc(req,(err, response) => {
if(err){
  callBack({
             error:'Oops Something went wrong'
});
}else{
  callBack(null,result);
}

});
}

【讨论】:

    【解决方案2】:

    你的回调函数应该有正确数量的参数。 因此,如果您有 callback(parameter1, parameter2) 那么您应该会收到类似 function(parameter1, parameter2)

    的结果
    function foo(callback) {
        **DB operation 
        callback(err, response);
    }
    
    function bar() {
        foo(function(err, response) {
           // do stuff here
        })
    }
    

    另外,你可以在调用之前检查你的回调是否是一个函数。

    if (typeof callback === "function")
    

    【讨论】:

      猜你喜欢
      • 2013-01-09
      • 1970-01-01
      • 2018-02-04
      • 2011-12-08
      • 2017-09-24
      • 2020-06-17
      • 2014-09-12
      • 2019-09-18
      • 2014-09-02
      相关资源
      最近更新 更多