使用nano和now.js进行JavaScript回调

时间:2011-11-04 12:46:20

标签: javascript node.js callback 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 个答案:

答案 0 :(得分:3)

您可以使用var self = this;模式:

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