У меня есть этот код:Вызов функции из внутри обратного вызова ASync внутри объекта
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
});
}
}
}
Тогда я звоню б как:
var test = require("./test.js")({});
test.b();
, но я получаю эту ошибку: Object #<Object> has no method 'a'
. Зачем?
Edit:
К сожалению, этот код на самом деле работает хорошо, но я получаю эту ошибку в моем коде производства.
Единственное отличие от этого примера (который работает правильно), и мой код (который не делает) , что мой демонстрационный код вызывается непосредственно:
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