ты меня не правильно понял, хотя я не знаю как это еще можно было понять
var chain = new AsyncChain()
.setOptions({
onComplete: function() {
// this указывает на объект, который сгенерировал событие - chain
}
})
.add(function() {
// функция выполняется в контексте цепочки
this.fireEvent('complete') // this -> chain
})
хотя дело не в единственный/один-из. Просто требования могут быть разные: кто-то может все действия в цепочки выстраивать, а кто-то наоборот писать все функции с колбеками. И тут не надо забывать, что 20% усилий из ста не приносят заметного результата... а бывает и наоборот, создают проблемы...