У меня есть функция, которая возвращает обещание, которое разрешается для объекта.
Я хочу, чтобы у этого объекта было событие, которое я могу слушать каждый раз, когда это событие вызывается изнутри.
Используя psudeo-код, это выглядело бы так:
// function that returns the promise
function myFunction(){
return new Promise(function(resolve, reject) {
var obj = {};
obj.running = event; // this is a fake line of code
setInterval(function(){
obj.running // this should trigger
}, 3000); // something that can be listened to
resolve(obj);
});
}
// function that can listen to the event
myFunction().then(function(obj){
obj.event(){ // Fake event listener
alert("the set interval function from the code above just ran")
}
})
Единственный способ, которым я мог бы сделать это с реальным кодом, - это создать прототип разрешенного объекта с функцией, которая вызывается, когдавнутренний метод setInterval срабатывает.
Однако я надеялся сделать это без необходимости использовать прототип для оптимизации API функций.Есть ли другой способ сделать это в реальной жизни?