我在node.js中编写了一个回调函数,但是它返回了一个未定义的值。以下是代码
exports.getRecord = (function(callback) {
return function(req, res) {
var recordName;
DBObject.record.find(jsonString, function(err, doc_record) {
doc_record.forEach(function(docRecordTravel) {
recordName = callback(docRecordTravel.recordCode);
console.log(recordName);
})
}
})(callbackFunc);
function callbackFunc(recordCode) {
var recordName;
DBObject.var_recordRack.find({
recordID: recordCode
}, function(err, record) {
record.forEach(function(recordLoop) {
recordName = recordLoop.recordName;
});
console.log("callback " + recordName);
return recordName
});
}
在callbackFunc中它显示了recordName,但是当我返回它时,它显示undefined。如何在node.js中的回调中返回值。
答案 0 :(得分:1)
你不能。
它使用回调函数,因为它是异步的。
调用回调时,上一个函数已经完成,无法将值返回。
如果您想对数据执行某些操作,则必须从回调函数执行此操作。