【问题标题】:Kotlin Flow with time out resultKotlin Flow 超时结果
【发布时间】:2021-02-26 03:51:48
【问题描述】:

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

现在我有类似的东西,我正在尝试在那里合并超时。

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

【问题讨论】:

    标签: android kotlin kotlin-coroutines android-workmanager kotlin-flow


    【解决方案1】:

    我会尝试这样的事情:

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

    我自己没有尝试过,但我认为应该可以。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-17
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-12
      • 1970-01-01
      • 2022-09-29
      相关资源
      最近更新 更多