vscode-appwrite/src/utils/promiseWithTimeout.ts
Alex Weininger 5fa1a5e661
Allow users to specify communication with self-signed certificates to fix connection to Appwrite on local machine (#10)
* fix self signed certs

* add health request time out of 10 seconds
2021-04-30 05:18:12 -07:00

11 lines
474 B
TypeScript

export const promiseWithTimeout = <T>(timeoutMs: number, promise: () => Promise<T>, failureMessage?: string): Promise<T> => {
let timeoutHandle: NodeJS.Timeout;
const timeoutPromise = new Promise<never>((resolve, reject) => {
timeoutHandle = setTimeout(() => reject(new Error(failureMessage)), timeoutMs);
});
return Promise.race([promise(), timeoutPromise]).then((result) => {
clearTimeout(timeoutHandle);
return result;
});
};