export function sleep(ms: number) { return new Promise((res) => setTimeout(res, ms)) } export class Deferred { declare promise: Promise declare resolve: (v?: T | PromiseLike) => void declare reject: (r?: any) => void constructor() { this.promise = new Promise((res, rej) => { this.resolve = res this.reject = rej }) } }