有关 nodejs 中 atomics 的问题

2018-07-09 18:40:30 +08:00
 leoleoasd

业务需要堵塞事件循环,在这里找到了一个用 c 写的 sleep 库,但是版本和我的 node 不一样,无法兼容 于是使用他建议的以下方法实现 sleep: test.js

function msleep(n) {
  Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, n);
}
function sleep(n) {
  msleep(n*1000);
}
console.log(1)
sleep(1)
console.log(2)

使用 node test.js 执行成功 成功暂停一秒

但是加入 electron-vue 的程序中,提示

App threw an error during load
ReferenceError: Atomics is not defined

该怎么解决?为什么用 webpack 打包后运行的结果与 node 运行有差异?

1318 次点击
所在节点    程序员
1 条回复
geekdada
2018-07-09 18:53:21 +08:00
不要在 Node 里进行这样毁灭性的操作。

> These calls will block execution of all JavaScript by halting Node.js' event loop!

请学习 NodeJS 的异步模型。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/469357

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX