stac-layer
Version:
Visualize a STAC Item or Collection on a Leaflet Map
22 lines (21 loc) • 571 B
JavaScript
// wraps a function or promise in a timeout
export default function withTimeout(ms, promiseOrFunction) {
return new Promise((resolve, reject) => {
let timeout = setTimeout(() => reject("timed out"), ms);
let promise;
if ("then" in promiseOrFunction) {
promise = promiseOrFunction;
} else {
promise = Promise.resolve(promiseOrFunction());
}
promise
.then(result => {
clearTimeout(timeout);
resolve(result);
})
.catch(error => {
clearTimeout(timeout);
reject(error);
});
});
}