node.js回调函数中的返回值未定义

时间:2014-01-06 09:58:26

标签: javascript node.js

我在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中的回调中返回值。

1 个答案:

答案 0 :(得分:1)

你不能。

它使用回调函数,因为它是异步的。

调用回调时,上一个函数已经完成,无法将值返回。

如果您想对数据执行某些操作,则必须从回调函数执行此操作。