如何在javascript中返回嵌套函数的值?

我在项目中有一个功能


function findParentID(parentName) {

  Category.findOne({ categoryName: parentName }, function (err, foundParent) {

    var parentID = foundParent.categoryID;

    return parentID;

  });

}

module.exports.findParentID = findParentID;

当我尝试调用此函数时,我进入了undefinedThis console.log() is how I am trying to call it


var parentName = req.body.parent_name;

var parentID = findParentID(parentName);

console.log(parentID);

根据我的理解,该函数没有返回任何值。如何从函数返回值?


素胚勾勒不出你
浏览 105回答 1
1回答

阿晨1998

在您的代码中,您试图直接调用具有 db(async) 操作的函数。要么使用 promises/async await。一旦相应地返回值,就执行连续的操作function findParentID(parentName) {return new Promise((resolve,reject)=>{  Category.findOne({ categoryName: parentName }, function (err, foundParent) {    var parentID = foundParent.categoryID;    resolve(parentID);  });});}module.exports.findParentID = findParentID;var parentName = req.body.parent_name;   findParentID(parentName).then((parentID)=>{   console.log(parentID);    });  更新(根据建议)  var parentName = req.body.parent_name;    Category.findOne({ categoryName: parentName }).then(foundParent => {        var parentID = foundParent.categoryID;      console.log(parentID);    })  
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript