Avatar
Yoshikuni Kato 11/5/2021 11:41 AM
こんにちは、Combineについての質問をさせてください。 Combineで、複数の値を送るPublisherって、どうやって作っていますか? 例えば、コールバック関数が複数回呼ばれる場合(WebSocketでメッセージを受信する等)の処理をPublisherにラップしたい場合、どう実装できるのでしょうか? webSocketClient.receiveMessage { message, error in // this closure is called multiple times, everytime a message comes ... } 他のFRPライブラリ、例えばReactiveSwiftだと、SignalProducer.init(_ startHandler:)、RxSwiftだとObservable.create と、普通にinitializerでかけるのですが、Combineで相当するものが見つからず、Combineユーザーの方がどう対応しているのか知りたいです。 TCA (The Composable Architecture)の Effect.run はそのようなユースケースにも使えて便利なのですが、内部実装はカスタムのPublisherとSubscriberを作っているようで、このようにカスタムのPublisherを作って対応しているのでしょうか? 割とよくあるシナリオな割にうまく書けなくて、Combine使っている方がどう処理しているのか気になっています。よろしくお願いします〜。 (edited)