代码之家  ›  专栏  ›  技术社区  ›  Yunus D

使用SharedFlow从房间数据库获取查询结果

  •  0
  • Yunus D  · 技术社区  · 2 年前

    大家好,我只是想知道,在SharedFlow中获取查询结果时,哪个代码段更适合范围

    val categories = categoryRepository.getAll().shareIn(
        scope = viewModelScope,
        started = SharingStarted.WhileSubscribed(5000),
        replay = 0
    )
    
     val categories = categoryRepository.getAll().shareIn(
        scope = CoroutineScope(Dispatchers.IO),
        started = SharingStarted.WhileSubscribed(5000),
        replay = 0
    )
    
    1 回复  |  直到 2 年前
        1
  •  0
  •   End User    2 年前

    这样更好

     val categories = categoryRepository.getAll().shareIn(
            scope = CoroutineScope(Dispatchers.IO),
            started = SharingStarted.WhileSubscribed(5000),
            replay = 0
        )
    

    viewModelScope 一定会 Dispatchers.Main.immediate