Почему моя функция nodejs всегда возвращает ноль - PullRequest
0 голосов
/ 17 октября 2019

Я определил 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 печатает фактический результат, но callBack из функции def всегда возвращает ноль. Что мне здесь не хватает?

Ответы [ 2 ]

0 голосов
/ 17 октября 2019

Вы функция обратного вызова должна иметь правильный номер параметра. Таким образом, если у вас есть обратный вызов (параметр1, параметр2) , то вы должны получить результат, подобный функции (параметр1, параметр2)

function foo(callback) {
    **DB operation 
    callback(err, response);
}

function bar() {
    foo(function(err, response) {
       // do stuff here
    })
}

Другое дело, вы можетепроверьте, является ли ваш обратный вызов функцией или нет, прежде чем вызывать их.

if (typeof callback === "function")
0 голосов
/ 17 октября 2019

Я просто забыл добавить ошибку в функцию.

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

});
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...