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.
25 lines
595 B
25 lines
595 B
|
|
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)
|
|
);
|
|
}
|
|
|