Files
SCM-Manager/scm-ui/ui-webapp/src/admin/plugins/components/waitForRestart.ts

30 lines
699 B
TypeScript
Raw Normal View History

import { apiClient } from '@scm-manager/ui-components';
2019-08-22 08:24:01 +02:00
const waitForRestart = () => {
const endTime = Number(new Date()) + 10000;
let started = false;
const executor = (resolve, reject) => {
// we need some initial delay
if (!started) {
started = true;
2019-08-22 10:53:14 +02:00
setTimeout(executor, 1000, resolve, reject);
2019-08-22 08:24:01 +02:00
} else {
apiClient
.get('')
2019-08-22 08:24:01 +02:00
.then(resolve)
.catch(() => {
if (Number(new Date()) < endTime) {
setTimeout(executor, 500, resolve, reject);
} else {
reject(new Error('timeout reached'));
2019-08-22 08:24:01 +02:00
}
});
}
};
return new Promise<void>(executor);
};
export default waitForRestart;