video-ad-sdk
Version:
VAST/VPAID SDK that allows video ads to be played on top of any player
28 lines (23 loc) • 700 B
text/typescript
import type {VpaidCreativeAdUnit} from '../../../types'
export const waitFor = (
creativeAd: VpaidCreativeAdUnit,
event: string,
timeout?: number
): Promise<void> =>
new Promise<void>((resolve, reject) => {
let timeoutId: number
const handler = (): void => {
if (typeof timeout === 'number') {
window.clearTimeout(timeoutId)
}
creativeAd.unsubscribe(handler, event)
resolve()
}
if (typeof timeout === 'number') {
timeoutId = window.setTimeout(() => {
creativeAd.unsubscribe(handler, event)
reject(new Error(`Timeout waiting for event '${event}'`))
}, timeout)
}
creativeAd.subscribe(handler, event)
})