首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用kotlin协程优化代码?

如何使用kotlin协程优化代码?
EN

Stack Overflow用户
提问于 2019-08-14 22:50:42
回答 1查看 131关注 0票数 0

这是我打开新协程的每个项目的代码,但问题是我想要优化它,并做一些限制,假设有5个协程,我知道有一个协程操作的解决方案,但我不知道如何在这里介绍它们。任何帮助都可能是有用的

代码语言:javascript
复制
  uiScope.launch {
        val infoItem = fetchItems(item.query)
        infoItems.add(infoItem)
        itemsMutableData.postValue(infoItems)
      }
  }

  override suspend fun fetchItems(query: String): Response<List<Item>>{
    return suspendCoroutine {})
    }
  }
EN

回答 1

Stack Overflow用户

发布于 2019-08-15 02:54:58

我希望我猜对了你的问题。你有一堆Stuff,并且必须为它们中的每一个进行异步调用。为他们中的每一个创建一个协程都很好。

代码语言:javascript
复制
val stuffList: List<Stuff> = ...
stuffList.map {
    launch {
        process(it)
    }
}.joinAll()

但是这段代码一次启动了很多请求。所以你想限制并发,可能最多5个并发调用。

它的“最佳”模式仍然是github上的an open issue。你应该看看他们的想法。

现在,您可以使用一个简单的实现。

创建一个work Channel,将内容发送到它,然后关闭该receive中的it.

  • launch n协程,并处理该Channel,直到到达Stuff
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57497108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档