为什么我的nodejs函数总是返回null

时间:2019-10-17 02:05:52

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

我已经定义了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的callBack始终返回null。我在这里想念的是什么。

2 个答案:

答案 0 :(得分:0)

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

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

});
}

答案 1 :(得分:0)

您的回调功能应具有正确数量的参数。 因此,如果您具有回调(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")