@lesnoypudge/utils-react
Version:
lesnoypudge's utils-react
36 lines (35 loc) • 811 B
JavaScript
import { never } from "@lesnoypudge/utils";
const createSleep = (durationMs, logId) => {
let isResolved = false;
let isResolving = false;
let promise;
const Sleep = ({
children
}) => {
if (!isResolved && !isResolving) {
isResolving = true;
logId && console.log(`[${logId}}] sleeping for: ${durationMs}`);
promise = new Promise((resolve) => {
setTimeout(() => {
isResolved = true;
isResolving = false;
logId && console.log(`[${logId}] sleep resolve`);
resolve();
}, durationMs);
});
throw promise;
}
if (isResolving) {
throw promise;
}
if (isResolved) {
return children;
}
never();
};
return Sleep;
};
export {
createSleep
};
//# sourceMappingURL=createSleep.js.map