Обратный вызов JavaScript с помощью nano и now.js

#javascript #node.js #callback #couchdb #couchdb-nano

#javascript #node.js #обратный вызов #couchdb #couchdb-nano

Вопрос:

 everyone.now.getGuess = function(val) {
  db.view('lists', 'project_names', {
      startkey: val,
      endkey: val   "u9999"
    }, function(_, data) {
    return data.rows.map(function(obj) {
      return obj['key'];
    });
  });

  return this.now.receiveGuess(guesses[0]);
};
  

db является объектом nano. db.view ничего не возвращает и предлагает только обратный вызов, поэтому guesses = db.view() не работает. И в обратном вызове db.view() я не могу получить к этому доступ дляnow.js.

Как я могу это решить?

Ответ №1:

Вы можете использовать var self = this; шаблон:

 function a() {
    var self = this;
    foo(function(err, data) {
        /* use "self" instead of "this" here */
    });
}