gpt4 book ai didi

android - 如何在 Kotlin 协程中使用 Sqldelight

转载 作者:行者123 更新时间:2023-12-02 12:41:00 28 4
gpt4 key购买 nike

SqlDelight 显然有 Kotlin 协程扩展函数,但我不知道如何实现它们,因为我找不到文档。

我有一个看起来像这样的普通查询:

val allItems
get() = itemQueries.selectAll().mapToList()

我可以把它变成一个挂起功能吗?

最佳答案

目前 (v1.2.1) 不支持 SqlDelight 查询的挂起功能,但是您可以使用 Coroutines Flow 对象,这会更好。为此,您需要在应用程序 gradle 中添加协程扩展库:

dependencies {
implementation "com.squareup.sqldelight:coroutines-extensions:1.2.1"
}

然后把你的查询变成这样:
val allItems: Flow<List<Item>> = 
itemQueries.selectAll()
.asFlow()
.mapToList()

此流程发出查询结果,并在每次数据库更改该查询时发出一个新结果。

然后你可以 .collect{}协程范围内的结果。

关于android - 如何在 Kotlin 协程中使用 Sqldelight,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60359883/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com