我有一个 SharedFlow,我想以特定频率交错来自非阻塞通道的项目。
(input / hot) Flow -> A, B, C, D, E, F, G, H, I, ...
Channel -> 1, 2, 3, 4, 5, ...
Output flow -> A, B, C, 1, D, E, F, 2, G, H, I, 3, ... (if channel has items)
Output flow -> A, B, C, D, E, F, G, H, I, ... (if channel has no items)
Output flow -> A, B, C, D, 1, E, F, G, 2, H, I, ... (if 1 comes just after D)
关键是,它对间隔 1、2、3 很重要,如果 Channel 随后停止产生值,则跳过。
我也可以将通道更改为 StateFlow。用 Kotlin 流实现这一点的惯用方法是什么?