私は、 Jintエンジンでホストされている es6 Promises ポリフィル ライブラリ ( es6-promise )を使用していますが、ほとんどの場合、うまく機能しています。
それを機能させるには、setTimeout
実装を提供する必要があり、 how-to-create-timer-on-jint-javascript-sideからインスピレーションを得ました。
ただし、このsetTimeout
実装の使用に問題がないわけではありません。これは、コールバックされる Promise の構築で Promises ライブラリが作業を完了するよりも早く .NET タイマーがコールバックをトリガーする場合があるためです。
この特定の問題を解決するために私がしなければならない 1 つの救済策setTimeout
は、コールバックの実装と実行を遅らせることです。ライブラリが作業を完了するためにより多くの時間を与えることができます。ただし、javascript の複雑さが増すにつれて、遅延が増加していることに気づき、信頼できる代替手段を探しています。
このライブラリ自体が代替に関係していることが起こります。の使用はsetTimeout
、他の選択肢が見つからない場合にのみ考慮さ process.nextTick()
れます。BrowserMutationObserver
Webkit 用。vertxTimer
(Javaの場合?); MessageChannel
Web ワーカー向け。
私の質問は、.NETタイマーの非同期呼び出しとは対照的に、イベントループの次の機会にコールバックを実行し、同期を維持できるようにするこれらの概念に似たものをジント(ジントできますか)に公開しますか?