You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

26 lines
595 B

10 months ago
export function eventOn(eventTarget, successEvent, errorEvent = "error") {
let $resolve, $reject;
const promise = new Promise((resolve, reject) => {
$resolve = resolve;
$reject = reject;
});
eventTarget.addEventListener(successEvent, $resolve);
eventTarget.addEventListener(errorEvent, $reject);
promise.finally(() => {
eventTarget.removeEventListener(successEvent, $resolve);
eventTarget.removeEventListener(errorEvent, $reject);
});
return promise;
}
export function timeout(delay) {
return new Promise(
resolve => setTimeout(resolve, delay)
);
}