0

迁移到 androidx 后,我基于 LiveData 和 GlobalScope.launch 的房间存储库停止工作。

我将 GlobalScope.launch 更改为 GlobalScope.async,因为我遇到了 observeForever 异常(但我没有使用此方法)。

        val success = MediatorLiveData<SomeDataModel>()
        try {
            GlobalScope.async(Dispatchers.IO) {
                success.addSource(myDao.getAll()) {
                    it?.let {
                        success.postValue(it)
                    }
                }
            }
        } catch (e: Exception) {
            e.printStackTrace()
        }
        return success
    }

I want to point that before migrating to androidX this code worked.
4

1 回答 1

0

异步块中的代码直到您await在其他地方才执行。如果你来自 JavaScript 世界,这会让你感到惊讶,因为在 JavaScript 中,async代码在它被编辑之前就执行了await

于 2019-08-13T06:08:26.687 回答