Kotlin流超时结果



我试图在CoroutineWorker(WorkManager)中使用Flow,该流应该在存储库中侦听值5秒,如果您在该时间范围内获得值,则返回Result.success()然后忽略/取消计时器,如果时间过去,则返回Result.failure()

现在我有一个类似的东西,我试图在那里加入超时。

repository.getListeningValue.onEach {
//doStuff here with the result
}.map{
Result.success()
}.first()

我会尝试这样做:

withTimeoutOrNull(5_000) {
flow.first()
Result.success()
} ?: Result.failure()

我自己没有试过,但我想应该可以。

最新更新