我正在使用es6-promise引擎中托管的es6 Promises polyfill库(Jint),并且在大多数情况下,它运行良好。
为了让它发挥作用,我需要提供setTimeout
实施,并从how-to-create-timer-on-jint-javascript-side获取灵感。
然而,使用这个setTimeout
实现并非完美无缺,因为有时.NET计时器会在Promises库完成其在要回调的Promise中构建的工作时更早地触发回调。 / p>
我必须解决这个特定问题的一个补救措施是延迟setTimeout
实现及其执行回调;为图书馆提供更多时间来完成其工作。然而,随着我的javascript的复杂性增加,我发现自己增加了延迟,我正在寻找一个可靠的替代方案。
这个库本身就与替代品有关。只有在找不到其他替代方案时才考虑使用setTimeout
:节点为process.nextTick()
; webkit的BrowserMutationObserver
; vertxTimer
(对于java?);对于网络工作者来说MessageChannel
。
我的问题是,Jint(可能Jint)是否公开了类似于这些概念的任何内容,这些概念允许我在下一次事件循环时执行回调并保持同步,而不是异步调用.NET Timer?