もう片側があきらめてStreamChannelのシンクを閉じたかどうか、実際にはまだメッセージを読むことはしません。DartでStreamが実際にメッセージを流さずに「完了」したときに、将来完了するための方法はありますか?
(あなたは一度だけ、ストリームごとに聞くことが許されているので、私は他の誰かにストリームを渡すことするつもりですので、私は(聞くことができない)ことに。)
[の転記友人、質問のための彼らのクレジット]
もう片側があきらめてStreamChannelのシンクを閉じたかどうか、実際にはまだメッセージを読むことはしません。DartでStreamが実際にメッセージを流さずに「完了」したときに、将来完了するための方法はありますか?
(あなたは一度だけ、ストリームごとに聞くことが許されているので、私は他の誰かにストリームを渡すことするつもりですので、私は(聞くことができない)ことに。)
[の転記友人、質問のための彼らのクレジット]
要するに、
「諦め」という概念はありません。イベントを非放送ストリームに入れると、誰かがストリームを聞くまでそこに留まります(誰かが聴くまではデータを置いてはいけないので、ただメモリを浪費しています)。 これにはdoneイベントが含まれており、前のすべてのイベントを最初に読み取らずにdoneイベントには到達しません。それがストリームのコア抽象です - 順序でアクセスされるイベントのソースです。実際に実行されるまでは実行されません。
は、私はあなたが探していると思うこと(つまり、アウト・オブ・バンド)を通じてストリームをを介さずについてストリーム情報を通信できる「サイドチャネル」です。 それは確かに構築することができます - あなたが望むものに応じて約1つの異なる方法で、しかしそれはちょうどStream
がサポートしているものではなく、StreamChannel
も正しく読み取れません。 StreamChannel
私自身)。
元のストリームを聞いて、すべての値を別のストリームにパイプした場合はどうなりますか?あなたは他の人にその二流を渡すことができますか? – Pacane