video-ad-sdk
Version:
VAST/VPAID SDK that allows video ads to be played on top of any player
26 lines (25 loc) • 637 B
JavaScript
import { once } from './once';
export const waitFor = (element, event) => {
let pending = true;
let resolvePromise;
let rejectPromise;
const promise = new Promise((resolve, reject) => {
resolvePromise = resolve;
rejectPromise = reject;
});
const cancelOnce = once(element, event, (...args) => {
pending = false;
resolvePromise(args);
});
const cancel = () => {
if (pending) {
pending = false;
cancelOnce();
rejectPromise(new Error('waitFor was canceled'));
}
};
return {
cancel,
promise
};
};