当前位置: 首页 > news >正文

厦门网站建设首选厦门一联网络网络推广网站电话

厦门网站建设首选厦门一联网络,网络推广网站电话,天元建设集团有限公司六公司,做网站引用没有版权的歌曲Kotlin协程flow发送时间间隔debounce debounce的作用是让连续发射的数据之间间隔起来。典型的应用场景是搜索引擎里面的关键词输入,当用户输入字符时候,有时候,并不希望用户每输入任何一个单字就触发一次后台真正的查询,而是希望…

Kotlin协程flow发送时间间隔debounce

debounce的作用是让连续发射的数据之间间隔起来。典型的应用场景是搜索引擎里面的关键词输入,当用户输入字符时候,有时候,并不希望用户每输入任何一个单字就触发一次后台真正的查询,而是希望用户在输入一定时间间隔后(猜测此时用户已完成完整关键词的输入),才真正发送最后一次的输入。debounce蕴含了一定的缓冲思想,即,不立刻触发事件,而是先把要发射的数据进入队列,稍等一定时间(时间)延迟触发,而触发的重要条件取决于前一条数据和后一条数据的时间间隔,注意,前一条和后一条尚未被发射出去,只是待命中。如果连续两次间隔时间满足timeOut,只保留最后一条数据。

 

import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.*
import kotlinx.coroutines.runBlockingfun main(args: Array<String>) {val timeOut = 100LrunBlocking {val result = userInput().debounce(timeOut).collect {println(it)}}
}fun userInput() = flow {emit("A")delay(100)emit("AB")delay(150)emit("ABC")delay(200)emit("ABCD")delay(100)emit("ABCDE")
}

 

当timeOut=100

AB
ABC
ABCD
ABCDE

A和AB都待发射,A和AB间隔100,所以跳过A,直接发射AB。

发射完AB后,由于ABC与之前的AB间隔超过100,继续发射。

 

 

 

 

当timeOut=150,比较难理解。

AB
ABC
ABCDE

A待发射,Kotlin发现A与AB间隔才100,所以舍弃A,Kotlin发现从A开始到AB之后的ABC,AB的等待时间超过150,且之前的A没有发射,所以发射AB。

发射完AB,下一个ABC与AB之间间隔150,且ABC与其后仍有时间间隔,继续发射ABC。

发射完ABC,Kotlin审视待发射的ABCD,按理说ABCD与ABC间隔200,满足发射timeOut值,但是ABCD与ABCDE间隔100,所以跳过ABCD,直接发射ABCDE。这里特别注意,Kotlin发射当前数据时候,是要把这条数据的前一条、后一条都拉通看的。

 

 

 

当timeOut=200

ABC
ABCDE

A与AB间隔100,舍弃A。而AB与之前的A间隔100,与之后的ABC间隔150,小于timeOut值,舍弃。ABC与之前的AB有时间间隔,与之后的ABCD间隔刚好等于timeOut值,所以发射。

 

 

 

当timeOut=250

ABCDE

 

简单的说,Kotlin用debounce发射当前数据时候,这个数据的前一条数据和后一条数据必须满足时间间隔才能发射,否则舍弃。

 

Kotlin协程flow,firstOrNull只要最先first,lastOrNull只要最后_zhangphil的博客-CSDN博客firstOrNull() //虽然发射很多数据,但只要第1次发射过来的数据。.lastOrNull() //虽然发射很多数据,但只要最后1次发射过来的数据。emit(i)delay(10)kotlin协程flow任务意外结束未emit数据retryWhen onEmpty(5)_zhangphil的博客-CSDN博客一、flow ,emit,onCompletion,collect。https://blog.csdn.net/zhangphil/article/details/132492588kotlin协程flow filter map flowOn zip combine(1)_zhangphil的博客-CSDN博客一、flow ,emit,onCompletion,collect。四、map,重组改写数据。八、conflate 合并。九、debounce去重。二、函数作为flow。https://blog.csdn.net/zhangphil/article/details/130084723

 

http://www.ds6.com.cn/news/97.html

相关文章:

  • 热点 做网站和营销 我只服他香港头条新闻
  • 如何做网站 优帮云关键词排名
  • 超酷的网站设计深圳营销策划公司十强
  • 自助网站建设地推网推平台
  • 如何查询网站备案信息广东seo点击排名软件哪家好
  • 跟公司产品做网站广东省各城市疫情搜索高峰进度
  • 网站模板 介绍品牌推广的意义
  • wordpress现在还慢吗seo中文含义是什么
  • 企业官方网站建设规划游戏优化软件
  • 网络推广外包业务怎么样长沙网站优化seo
  • 在线网站做网页设计的软件
  • 做网站的要求2022当下社会热点话题
  • python 网站开发 用什么框架网络营销学什么内容
  • 开封市做网站的公司深圳网络营销推广
  • 太原seo公司网站宁波seo外包
  • 网站建设 有限公司百度手机助手下载2022官方正版
  • 建筑公司名称大全seo排名优化什么意思
  • 电商网站建设实验心得池州网络推广
  • 机顶盒视频网站建设成都seo技术
  • 网站制作公司网址seo引擎
  • 波兰网站后缀app联盟推广平台
  • 珠海网站建设策划360地图下载最新版
  • 网站路径问题企业营销案例
  • 蚌埠市住房建设委网站seo算法
  • 济宁做网站多少钱网站优化seo方案
  • 新浪网站开发语言网站cms
  • asp网站管理系统源码免费b站推广入口
  • php网站制作成都网络优化托管公司
  • android 做分享的网站西安百度关键词包年
  • 网站开发与管理心得体会公司网页网站建设