反応バナナで現在の時刻をどのように処理しますか?
理想的にはBehaviour
、現在の時刻を取得するために「ポーリング」できる が必要です。Behaviour
ただし、 s をEvent
(経由<@
などで)ポーリングすると、現在の値ではなくBehaviour
、以前 Event
の の値が得られます。(これは、実際に有用な循環定義を避けるためだと認識しています。)
fromPoll
役立つと思ったもの を見つけました。Behaviour
から観察される s はfromPoll
、それ自体に依存することはできないため、前の発火の直後ではなく、これが発火する直前の動作を観察することによってサイクルを導入することはできません。Event
Event
余談
より形式的な言い方をすれば、 s は常に時刻t+にEvent
発生し、常に時刻t-に観察される、つまり、それらの直前に発生する非常に短い時間に発生する動作を観察することを示唆しています。および友人によって生成された s の新しい値は、常に時刻 t+ から開始されるため、時刻t+にも発生する s によって観測できませんでした。Behaviours
Event
Behaviour
accumB
Event
この提案されたセマンティクスの下では、Behaviour
によって作成された s は、それぞれが処理fromPoll
される直前に更新されます。Event
他Behaviour
の は、友人によって作成されているため、後で更新されaccumB
ます。
私のユースケース
とにかく、それは私の主な質問に対する重大な余談です。反応バナナで現在の時刻 (前 の時刻ではなく)を処理する方法があるかどうかを知りたいです。Event
私の使用例は、たとえば、エンティティが送信する ping を追跡し、それらのいずれかが特定の時間間隔で ping を送信していない場合に警告イベントを通知することです。
もちろん、私は非常に頻繁にイベントを発生させることができますし、今後もそうするつもりです。しかし、それらが正確ではないのは疣贅のようです。
これに対処する正しい方法は何ですか?