Переменная adManager является глобальной переменной.По какой-то причине он сохраняет аргументы для обработчиков событий.
Я использовал adManager как своего рода глобальный объект EventEmitter для отправки событий и управления потоком кода.
У меня был дополнительный оператор снаружи, например, который инициализировал adManager при запуске сервера:
app.get('/m/ad', function (req, res) {
adManager.on('ad_unit_exists', function (ad_unit, req, res) {
res.header('Ad-Type',"html");
res.end();
return;
});
adManager.emit('ad_unit_exists',{}, req, res);
});
AdManager.prootype = new process.EventEmitter();
var adManager = new AdManager();
res
в обратном вызове для события ad_unit_exists анализировал res из предыдущего событияэмиссия - предыдущий запрос, который уже завершился () 'ed - когда событие было отправлено для второго запроса.Странный.
Решил это, добавив:
adManager = new AdManager()
в функцию обратного вызова app.get ().