@novo-learning/novo-sdk
Version:
SDK for the Novolanguage Speech Analysis API
24 lines (22 loc) • 676 B
text/typescript
/**
* Wraps a promise P in a new promise which returns true if P resolved within the specified time and otherwise false
* @param ms - milliseconds to wait before rejecting the promise if not resolved
* @param promise to monitor
*/
export function promiseTimeout(ms: number, promise: Promise<unknown>): Promise<boolean> {
return new Promise((resolve) => {
// create a timeout to reject promise if not resolved
const timer = setTimeout(() => {
resolve(false);
}, ms);
promise
.then(() => {
clearTimeout(timer);
resolve(true);
})
.catch(() => {
clearTimeout(timer);
resolve(false);
});
});
}