ReferenceError:尝试使用函数组合时未定义错误

时间:2017-09-15 06:34:03

标签: javascript node.js express callback ecmascript-6

我在nodejs中定义了两个简单的函数:

function findEntityDetailsAsIs(modelname, callback) {
     modelname.find({}, function(error, result) {
         if (error)
           callback (error, null);
         else {
           //console.log(result);
           callback (null, result);
         }
    });
};

这是我的第一个功能,另一个功能是

function printEntitydetails(error, entitydetails, callback) {
   console.log(entitydetails);
}

我试图将这些功能称为

findEntityDetailsAsIs(fieldLabel, printEntitydetails(error, entitydetails));

但是当我尝试运行此函数时,它会抛出错误

ReferenceError: error is not defined

但错误就像我从回调传递的占位符对象一样。

 findEntityDetailsAsIs(fieldLabel, printEntitydetails(entitydetails));

我尝试在通话中跳过错误,但这次它会出现此错误。

ReferenceError: entitydetails not  is not defined

据我所知,findEntityDetailsAsIs应提供entitydetails的背景信息,因为我提供了callback(null, result)

1 个答案:

答案 0 :(得分:3)

你的函数findEntityDetailsAsIs期望得到回调函数,而不是它的执行结果 您只需要提供函数名称:

 findEntityDetailsAsIs(fieldLabel, printEntitydetails);

当您按照自己的方式运行时,会传递findEntityDetailsAsIs printEntitydetails结果而不是函数本身。由于该函数不返回任何内容,因此未定义