setTimeout and V8

setTimeout and V8

本文关键字:V8 and setTimeout      更新时间:2023-09-26

我已经安装了V8单机版,并执行如下javascript代码:./d8 source.js。当我使用setTimeout时,我会收到ReferenceError: setTimeout is not defined。应该是这样吗?有可能以某种方式包含此功能吗?

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

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

因此给定example.js:

console.log("a");
setTimeout(() => {
    console.log("c");
}, 5000);
console.log("b");

然后

$v8 example.js

输出

一bc

而在CCD_ 9和CCD_。

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