問題タブ [kotlin-flow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1139 参照

android - ConflatedBroadcacstChannel.asFlow() に対して Flow.onCompletion が呼び出されないのはなぜですか?

Coroutines+Flow/ LiveDataの新しい Android コード ラボではonCompletion、LiveData API を更新して Flow を使用しますが、期待どおりに呼び出されないという意図しない動作に気付きました。置き換える LiveData コード:

コードラボの最後に得られる Flow コード:

mapLatestFlow を実行すると、変換が完了しても onCompletion が呼び出されないため、スピナーが消えることはありません。コード ラボには、「onCompletion上記のフローが完了するたびに呼び出されます。これは finally ブロックと同じものです。クリーンアップ中に実行する必要があるコードを配置するのに適した場所です。ここでスピナーをリセットします。」

しかし、これは明らかに正しくありません。それでは、各変換後にコード ブラックを実行する適切な方法は何でしょうか。これは、コード ラボが正しくないことを意味するのでしょうか、それとも私が誤解しているものがあるのでしょうか?