內從異步的回調中的函數我有這樣的代碼:調用對象
var async = require("async");
module.exports = function(vars){
return {
a: function(){
console.log("a()");
},
b: function(){
var self = this;
async.series([
function(callback){
...
callback();
},
function(callback){
...
callback();
}
], function(){
self.a(); // <------- err
});
}
}
}
然後我打電話給B中:
var test = require("./test.js")({});
test.b();
,但我得到這個錯誤:Object #<Object> has no method 'a'
。爲什麼?
編輯:
對不起,這段代碼實際上運行良好,但我得到這個錯誤在我的生產代碼。
從這個例子唯一的區別是(正常工作)和我的代碼(不) 是我的演示代碼被直接調用:
var test = require("./test.js")({});
test.b();
,而我的生產代碼是從另一個庫調用:
var my_code = require("./something.js")({});
imap_notify.on_new_mail(my_code.my_func);
如何在方法'B'叫什麼名字? –
@ArunPJohny檢查我的編輯,請 – alexandernst
self = b在這個例子中 – Armand