/
erioxis
/
web-nodejs
Обзор
Документация
Войти
/
erioxis
/
web-nodejs
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/node_modules/atomic-sleep/index.js
38 строк
1 KB
erioxis
lab11fix
15 дек 2025, 23:21
15 дек 2025, 23:21
70dc7ba
Код
Авторство
О чём код?
'use strict' /* global SharedArrayBuffer, Atomics */ if (typeof SharedArrayBuffer !== 'undefined' && typeof Atomics !== 'undefined') { const nil = new Int32Array(new SharedArrayBuffer(4)) function sleep (ms) { // also filters out NaN, non-number types, including empty strings, but allows bigints const valid = ms > 0 && ms < Infinity if (valid === false) { if (typeof ms !== 'number' && typeof ms !== 'bigint') { throw TypeError('sleep: ms must be a number') } throw RangeError('sleep: ms must be a number that is greater than 0 but less than Infinity') } Atomics.wait(nil, 0, 0, Number(ms)) } module.exports = sleep } else { function sleep (ms) { // also filters out NaN, non-number types, including empty strings, but allows bigints const valid = ms > 0 && ms < Infinity if (valid === false) { if (typeof ms !== 'number' && typeof ms !== 'bigint') { throw TypeError('sleep: ms must be a number') } throw RangeError('sleep: ms must be a number that is greater than 0 but less than Infinity') } const target = Date.now() + Number(ms) while (target > Date.now()){} } module.exports = sleep }