Kotlin Flow 超时结果
Kotlin Flow with time out result
我正在尝试在 CoroutineWorker(WorkManager) 中使用 Flow,并且该流程应该在存储库中侦听一个值 5 秒,如果您在该时间范围内获得该值,您 return Result.success() 然后 ignore/cancel 计时器,如果时间过去了你 return Result.failure()
现在我有类似的东西,我正在尝试将超时合并到那里。
repository.getListeningValue.onEach {
//doStuff here with the result
}.map{
Result.success()
}.first()
我会尝试这样的事情:
withTimeoutOrNull(5_000) {
flow.first()
Result.success()
} ?: Result.failure()
我自己没试过,但我觉得应该可以。
我正在尝试在 CoroutineWorker(WorkManager) 中使用 Flow,并且该流程应该在存储库中侦听一个值 5 秒,如果您在该时间范围内获得该值,您 return Result.success() 然后 ignore/cancel 计时器,如果时间过去了你 return Result.failure()
现在我有类似的东西,我正在尝试将超时合并到那里。
repository.getListeningValue.onEach {
//doStuff here with the result
}.map{
Result.success()
}.first()
我会尝试这样的事情:
withTimeoutOrNull(5_000) {
flow.first()
Result.success()
} ?: Result.failure()
我自己没试过,但我觉得应该可以。