Avatar
Combine ってなくなる運命にあるという噂を聞いてマジか、、、ってなりました。それに伴って一つ問題があってお伺いしたいことがあります。 あるコンポーネントが別のコンポーネントの AsynSequence を購読したいとして、そのコンポーネントの動作に必須であるのでなるべく init で購読を開始したいとします。 public actor Example { public init(observing another: Another) { // ここで同期的に購読開始したい。Task で浮かせてしまうと init が終わりその // Task の実行が始まるまでの間にイベントが来ると取りこぼしてしまう。 // そのためここで Task { for await .... } はしたくない。 } } これってどうやってやればイベントの取りこぼしをなくせるのでしょう。
5:13 AM
Combine 時代は素直に init の中で sink を呼べば購読を開始できたのでこの問題は起こりませんでした