export function withTimeout(promise: Promise, ms: number): Promise { const timeout = new Promise((resolve, reject) => { let id = setTimeout(() => { clearTimeout(id); reject("Timed out after " + ms + "ms."); }, ms); }); return Promise.race([promise, timeout]); }