我有这个代码:
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);