【问题标题】:setTimeout not working in SpiderMonkeysetTimeout 在 SpiderMonkey 中不起作用
【发布时间】:2014-06-21 17:23:44
【问题描述】:

我通过关注this 在 mac 上构建了 spidermonkey。在 build-release/dist/bin 下,可执行文件是 js24 而不是 js(根据 this )。

但是,当我使用 js24 运行 shell 时,像 1+2 这样的表达式正在工作,但是当我尝试像 setTimeout(function () {}, 500) 这样的事情时,我得到了,

ReferenceError: setTimeout is not defined

我做错了什么?我认为行为与节点外壳相同。

【问题讨论】:

  • setTimeout 不是语言的一部分。
  • setTimeoutwindow 对象的函数,它是您浏览器中的全局对象。没有window,没有setTimeout
  • @MattBurland 明白了,谢谢。 v8 是否也有这种行为并且节点添加了这个?
  • “spidermonkey settimeout”的第一个结果:gist.github.com/kevinoid/3146420

标签: javascript mozilla spidermonkey


【解决方案1】:

将来自 cmets 的优秀答案保存为实际答案,以便将此问题标记为已回答。

setTimeout 不是 JavaScript 语言的一部分,它是浏览器 window 对象的一部分,它是网页 JavaScript 代码的全局对象:https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers.setTimeout

node.js 也有类似的 API:http://nodejs.org/docs/latest/api/timers.html#timers_settimeout_callback_delay_arg

要在 SpiderMonkey 中实现 setTimeout,您可以使用以下代码: https://gist.github.com/kevinoid/3146420

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 2016-01-09
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-13
    相关资源
    最近更新 更多