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

东莞网站建设_东莞网页设计wordpress pdf

东莞网站建设_东莞网页设计,wordpress pdf,珠海室内设计学校,wordpress 角色插件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.yayakq.cn/news/259813/

相关文章:

  • 怎么做网盘搜索引擎网站h5源码分享网
  • 建设银行网站打不井wordpress编辑网页
  • 青岛外贸网站建设费用黑龙江建设网官网入口
  • 福州网络公司网站东莞市手机网站建设公司
  • 城乡住房和城乡建设部网站首页手机网站怎么在电脑上打开
  • 怎样做视频上网站赚钱wordpress 后台登陆不进去
  • 东莞热点网站建设文字域名可以做网站
  • 网站开发 手机 电脑网站内容通过服务器会不会被更改
  • 北京备案网站负责人杭州做官网的有哪些公司
  • 平凉网站建设网站 授权书
  • 部门网站建设方案工作室网页
  • 建设淘宝客网站源码怎么弄烟台做网站的价格
  • 贵安新区建设管理信息网站学做网站需要学哪些软件
  • 鞍山建一个网站大概要多少钱wordpress添加顶部导航条
  • 深圳市做网站的有那些公司服务器ip域名解析
  • 燕郊做网站找谁WordPress多语言多站点
  • 专门做物理的网站江苏工程建设信息官方网站
  • 网站建设提成方案自己做网站是用什么软件
  • wordpress 多语言网站陕西网站备案流程
  • 白酒网站模版怎么建微信公众号
  • 网站的规划与建设_按时间顺序可以分为哪等五个阶段网页的视频怎么下载到本地
  • 网站建设wang.cd做彩票网站被捉将受到什么惩罚
  • 做跨国婚恋网站赚钱吗wordpress网站模板怎么用
  • 内网建站教程权威发布背景图
  • 山东省建设工程造价管理协会网站怎么查询菠菜网站做没作弊
  • 做编程的 网站有哪些方面朋友圈网络营销
  • 房地产管理局网站android studio下载安装
  • 泸西网站建设学院网站建设项目
  • 有自己的域名怎么建设网站做魔杖网站
  • 公司做网站一般大型电子商务网站建设方案