Как получить возвращаемые значения функции обратного вызова в NodeJS - PullRequest
1 голос
/ 08 сентября 2011

Ниже код использует mongoskin для доступа к mongodb с помощью nodejs. Как получить доступ к возвращаемому значению функции обратного вызова извне?

app.get('/', function(req, res) {

    var ret = db.collection('counters').findAndModify(
        {_id: 'messagetransaction'},
        [],
        {$inc : {next: 1}},
        true,
        true,
        function(err, counter) {
            if (err) { 
                throw err;
            }else{
                console.log(counter.next);
                return counter.next;
            }       
        }
    );

});


console.log(ret);

Я получил ошибку, как показано ниже,

ReferenceError: ret is not defined

Пожалуйста, помогите мне в этом!

1 Ответ

3 голосов
/ 08 сентября 2011

Проблема в том, что вы никогда не знаете, когда сработает обратный вызов;его асинхронный.Поэтому вы не хотите, чтобы что-то ждали результата.Что вы должны сделать, это вместо того, чтобы возвращать значение, вы должны вызывать функцию, передавая значение, и эта функция должна делать то, что вы хотите, чтобы она делала с результатом.

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