UNPKG

@blackglory/wait-for

Version:

A module for waiting for things to happen.

21 lines (19 loc) 587 B
import { fromEvent, map, filter, firstValueFrom } from 'rxjs' /** * waitForLoad的边缘情况替代品: * 如果页面载入被用户代理取消, 就不会触发window的load事件. */ export function waitForComplete(): Promise<void> { return new Promise((resolve, reject) => { if (document.readyState === 'complete') { resolve() } else { firstValueFrom( fromEvent(document, 'readystatechange').pipe( map(() => document.readyState) , filter(state => state === 'complete') ) ).then(() => resolve(), reject) } }) }