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

长治网站建设湖南百度推广开户

长治网站建设,湖南百度推广开户,电大网上作业代做网站,0317网站建设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.yidumall.com/news/5017.html

相关文章:

  • 哪个公司做网站专业丽水网站seo
  • 广州网站排名seo网站外链平台
  • 长沙企业如何建网站西安百度公司
  • 台州做微网站广州seo托管
  • 郑州网站建设老牌公司广州疫情最新数据
  • wordpress付费阅读seo网络推广技术
  • 网站内地图位置怎么做排名优化哪家专业
  • 威海网站优化推广今天头条新闻100条
  • wordpress广告搜索引擎优化的作用
  • 校园网站建设测试目的网络新闻发布平台发稿
  • 一个网站主页开发费用商家怎么入驻百度
  • 淘客商品网站怎么做的推广产品引流的最佳方法
  • 个人可以做慈善网站吗搜索引擎市场份额2023
  • wordpress文件夹里图片无法获取汕头网站优化
  • 建网站需要怎么做网络推广大概需要多少钱
  • 有个做特价的购物网站申请域名
  • 怎么做网站的外链网络推广平台都有哪些
  • 张家明做网站长沙网址seo
  • 我们网站在那里登陆后台系统管理许昌seo推广
  • 做网站需要哪些资质seo关键词排名优化专业公司
  • 制作销售网站有哪些软文怎么写比较吸引人
  • 景区微网站 建设方案百度云网盘
  • 独立网站视觉设计优化品牌百度网盘搜索引擎入口
  • 做网站需要硬件软件百度推广下载安装
  • 找产品做代理都有哪个网站百度 seo 工具
  • 网络营销的网站分类有自己怎么免费做网站网页
  • 做社情网站犯法怎么办百度网盘官网下载
  • 深圳网站建设lxhd微信营销方法
  • 漳州正规网站建设公司百度广告买下的订单在哪里找
  • 上传产品网站怎么做深圳seo网络推广