setTimeout和V8

时间:2012-09-08 23:12:52

标签: javascript v8

我已经安装了V8独立版并执行这样的javascript代码:./d8 source.js。当我使用setTimeout时,我收到ReferenceError: setTimeout is not defined。这是怎么回事?有可能以某种方式包含这个功能吗?

2 个答案:

答案 0 :(得分:10)

setTimeout不是ECMA-262的一部分,它是由浏览器实现的。但是,如果您安装Node.js(即V8 +附加组件),您将获得命令行setTimeout

答案 1 :(得分:1)

就其价值而言,V8在提供的外壳中现已拥有自己的setTimeout(约7.5年后)。但是它只需要一个参数(要调用的函数),并计划在当前作业完成后立即调用它,就好像您将0作为第二个参数传递给了更熟悉的{{1 }}由浏览器和Node.js提供。

给定setTiemout

example.js

然后

$ v8 example.js

输出

a
b
c

...在console.log("a"); setTimeout(() => { console.log("c"); }, 5000); console.log("b"); b之间没有明显的延迟。

(该示例使用了jsvu安装的c命令,这至少是您直接在V8中运行代码的一种方式。我认为v8被包含了……)