我们能用StateFlow.update替换StateFlow.value的所有用法吗



阅读以下文章,

  • 可变状态流值与更新与发射
  • https://medium.com/geekculture/atomic-updates-with-mutablestateflow-dc0331724405
  • https://proandroiddev.com/make-sure-to-update-your-stateflow-safely-in-kotlin-9ad023db12ba
  • https://www.droidcon.com/2021/08/25/make-sure-to-update-your-stateflow-safely-in-kotlin/

我可以理解我们可以使用stateflow update((来原子地更新值
当更新后的值具有copy()或某些长时间运行的计算时,这很有用。(API调用、房间数据获取等(

我的问题是,我们是否可以用update()完全替换stateflow.value的所有用法,或者是否存在.value是更好选择的用例?

当您所需的逻辑不需要它时,我不会使用它,因为它的代码更多,性能更低。此外,如果您将长时间运行的suspend函数放在其中,那么其他想要更新它并且也在使用update的协同程序将不得不等待。如果这与你的逻辑无关,你会让一切变得更慢。

我想不出有什么理由使用它,除非新值必须依赖于前一个值。

相关内容

  • 没有找到相关文章

最新更新