Как вы используете это для передачи данных всем «подписчикам» - так что, если решение Promise разрешено, я хочу уведомить всех. В настоящее время window.addEventlistener находится вне контекста контекста, и я не могу получить доступ к любым локальным переменным класса или передать данные с помощью и Event (TypeScript)
ожет звучать странно, но я ищу способ выполнить обещание несколько раз. Есть ли подходы, чтобы сделать это возможным?
Подумайте о следующем примере:
getPromise() {
const event = new Event('myEvent');
setTimeout(() => {
window.dispatchEvent(event);
}, 5000);
setTimeout(() => {
window.dispatchEvent(event);
}, 7000);
return new Promise((resolve) => {
window.addEventListener('myEvent', () => {
resolve('some value'));
});
resolve('some value'));
});
};
А затем .then ():
getPromise().then(data => {console.log(data)})
Должен дать следующий результат:
some value // initial
some value // after 5000ms
some value // after 7000ms
Итак, я знаю, что есть библиотеки для потоковой передачи данных, но я действительно ищу нативный подход без callbak для достижения этой цели.