setTimeout和V8

问题描述 投票:10回答:2

我已经独立安装了V8,并执行如下JavaScript代码:./d8 source.js。当我使用setTimeout时,我收到ReferenceError: setTimeout is not defined。这是应该的样子吗?是否可以通过某种方式包含此功能?

javascript v8
2个回答
12
投票

setTimeout不是ECMA-262的一部分,它是由浏览器实现的。但是,如果安装Node.js(V8 +其他功能),则会获得命令行setTimeout


0
投票

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

给定example.js

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

然后

$ v8 example.js

输出

一种bC

...在bc之间没有明显的延迟。

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

© www.soinside.com 2019 - 2024. All rights reserved.