JS 如何实现一个同步的 sleep 函数
Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 429 (opens in a new tab)
Author 回答者: shfshanyue (opens in a new tab)
const sleep = (ms) =>
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, milliseconds);
Author 回答者: kissshot (opens in a new tab)
SharedArrayBuffer (opens in a new tab) 被禁用了。。。
Author 回答者: shfshanyue (opens in a new tab)
@kissshot 貌似是因为有安全问题...
Author 回答者: Hishengs (opens in a new tab)
function sleep (t = 1000) {
console.log('>>> sleep start');
let startTime = +(new Date());
let curTime = startTime;
while (true) {
curTime = +(new Date());
if (curTime - startTime >= t) break;
console.log('>>> sleep finish');
// test
sleep(3000);
console.log('>>> hi');
// output
>>> sleep start
// 3s later
>>> sleep finish
Author
回答者: Vi-jay (opens in a new tab)