setTimeout 但对于给定的时间

新手上路,请多包涵

JavaScript 中是否有任何现成可用的东西(即不是通过“插件”)允许我做类似 setTimeout 的事情,但我没有说应该发生多少毫秒,而是给它一个日期对象告诉它什么时候做某事?

 setToHappen(function () {
    alert('Wake up!');
}, new Date("..."));

是的,我知道我可以通过简单地用我现有的日期对象减去 new Date() 来获得毫秒数,但我仍然想知道。

原文由 Deniz Dogan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 440
2 个回答

您必须计算现在和日期对象之间的毫秒数:

 function setToHappen(fn, date){
    return setTimeout(fn, date - Date.now());
}

注意,请注意 @calvin 的回答:如果毫秒数大于 2147483647 ,这将不起作用。

原文由 Simon 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题