Nexus,
ты можешь "вывернуть промис наизнанку":
var obj = {};
obj.promise = new Promise(function(resolve, reject) {
obj.resolve = resolve;
obj.reject = reject;
});
теперь в объекте obj у тебя есть оба метода окончания асинхронности (с ними можно что-то делать), и созданный промис, который можно куда-то передать, например.