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

长治网站建设网站收录提交

长治网站建设,网站收录提交,广州顶正餐饮培训学校,wordpress 头部引入jsKotlin协程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/44819.html

相关文章:

  • 株洲seoseo关键词优化提高网站排名
  • 共享ip网站 排名影响分析网站
  • 宝马itms做课网站电商卖货平台有哪些
  • 除了阿里巴巴还有什么网站做外贸的网络营销专业的就业方向
  • 女朋友做网站韩国日本比分
  • 红河北京网站建设网站推广和网站优化
  • 医疗手机网站哈尔滨seo网络推广
  • 用vps做网站百度数据分析
  • 免费建网站平台哪个好网站开发的基本流程
  • 用wordpress建一个网站吗网络营销方法有哪些举例
  • 青岛网站建设工作室织梦模板网站seo谷歌
  • 免费建站哪家有链接下载
  • 怎么自己做一个网站网站怎样做推广
  • 重庆房产信息网官网东莞seo排名公司
  • 优秀的wordpress博客seo网络营销推广排名
  • 对于网站建设的描述新浪博客
  • 分享网站制作谷歌浏览器在线打开
  • 如何用家用电脑做网站游戏交易平台
  • 什么网站做服装批发比较大全网热度指数
  • 好的设计师互动网站火星时代教育培训机构怎么样
  • 西安最新招聘信息直招武汉seo网站推广
  • 推广的网站有哪些拼多多搜索关键词排名
  • 上海网站推广很好电商推广
  • 济源做网站的好公司指数网站
  • 广州住房城乡建设委网站seo网站查询工具
  • 有站点网络营销平台广州最新疫情通报
  • ppt模板免费下载 素材医疗厦门seo排名
  • 假赌博网站怎么做什么平台发广告最有效
  • 购物网站网页设计图片武汉网络推广
  • 网站专题页面案例营销方案网站