我已经独立安装了 V8 并执行这样的 javascript 代码:./d8 source.js
. 当我使用 setTimeout 时,我收到ReferenceError: setTimeout is not defined
. 这是应该的吗?是否有可能以某种方式包含此功能?
问问题
3899 次
2 回答
12
setTimeout
不是 ECMA-262 的一部分,它是由浏览器实现的。但是,如果您安装Node.js(即 V8 + extras),您将获得一个命令行setTimeout
。
于 2012-09-09T10:43:34.480 回答
4
对于它的价值,V8setTimeout
现在(大约 7.5 年后)在它提供的 shell 中拥有自己的东西。但是它只需要一个参数(要调用的函数)并安排在当前作业完成后调用它,大致就像您将第二个参数作为第二个参数传递给浏览器和 Node.js 提供0
的更熟悉的形式一样。setTiemout
所以给出example.js
:
console.log("a");
setTimeout(() => {
console.log("c");
}, 5000);
console.log("b");
然后
$ v8 example.js
输出
一种 b C
...在b
和之间没有明显的延迟c
。
(该示例使用由jsvuv8
安装的命令,这至少是您直接在 V8 中运行代码的一种方式。我认为已被包含...)d8
于 2020-02-22T17:58:44.663 回答