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

网站开发内容太原做推广营销

网站开发内容,太原做推广营销,找网站建设工作室靠谱吗,地方门户Stream Stream用于接收异步事件Stream 可以接收多个异步事件Stream.listen()方法返回StreamSubscription 可用于取消事件订阅,取消后,不再接收事件 基本使用 Stream.fromFutures([Future.delayed(Duration(seconds: 1),(){return "事件1";})…

Stream

  • Stream用于接收异步事件
  • Stream 可以接收多个异步事件
  • Stream.listen()方法返回StreamSubscription 可用于取消事件订阅,取消后,不再接收事件

基本使用

 Stream.fromFutures([Future.delayed(Duration(seconds: 1),(){return "事件1";}),Future.delayed(Duration(seconds: 3),(){return "事件2";}),Future.delayed(Duration(seconds: 5),(){return "事件3";})]).listen((event) {print("${DateTime.now().millisecondsSinceEpoch} >> "+event);}).onDone(() {print("${DateTime.now().millisecondsSinceEpoch} >> onDone");});Stream.fromFutures([Future.delayed(Duration(seconds: 1),(){return "事件1";}),Future.delayed(Duration(seconds: 3),(){return "事件2";}),Future.delayed(Duration(seconds: 5),(){return "事件3";})]).listen((event) {print("${DateTime.now().millisecondsSinceEpoch} >> "+event);},onError: (error){},onDone: (){});

运行结果

1703817812594 >> 事件1
1703817814583 >> 事件2   //2s后打印
1703817816574 >> 事件3   //2s后打印
1703817816578 >> onDone

另外一种使用方式 更加灵活

var streamController =  StreamController();streamController.stream.listen((event) {print(event);});streamController.add("事件1");streamController.add("事件2");streamController.add("事件3");

运行结果

事件1
事件2
事件3

由结果可以看出,Stream类似于rxjava
Stream.listen()方法返回StreamSubscription 可用于取消事件订阅,取消后,不再接收事件
未取消订阅

 StreamController streamController =  StreamController();StreamSubscription streamSubscription = streamController.stream.listen((event) {print(event);});streamController.add("事件1");streamController.add("事件2");Future((){sleep(Duration(seconds: 2));// streamSubscription.cancel();streamController.add("事件3");});

结果

事件1
事件2
事件3

取消订阅后

 StreamController streamController =  StreamController();StreamSubscription streamSubscription = streamController.stream.listen((event) {print(event);});streamController.add("事件1");streamController.add("事件2");Future((){sleep(Duration(seconds: 2));streamSubscription.cancel();streamController.add("事件3");});

结果

事件1
事件2
StreamController

构造函数参数表示stream的生命周期

/**
onListen: 监听开始开始
onPause:监听暂停
onResume:监听重启
onCancel:监听取消
sync :同步 or 异步
*/factory StreamController({void onListen()?,void onPause()?,void onResume()?,FutureOr<void> onCancel()?,bool sync = false}) {return sync? _SyncStreamController<T>(onListen, onPause, onResume, onCancel): _AsyncStreamController<T>(onListen, onPause, onResume, onCancel);}
StreamController streamController =  StreamController(onListen: (){print("onListen");},onPause: (){print("onPause");},onResume: (){print("onResume");},onCancel: (){print("onCancel");},);StreamSubscription streamSubscription = streamController.stream.listen((event) {print(event);});streamController.add("事件1");streamSubscription.pause();streamSubscription.resume();streamController.add("事件2");Future((){sleep(Duration(seconds: 2));streamSubscription.cancel();streamController.add("事件3");});

运行结果:

onListen
onPause
事件1
事件2
onResume
onCancel

Stream其他构造方法

void main() async{Stream.value(1).listen((event) {print(event);});Stream.fromIterable([2,3,4,5]).listen((event) {print(event);});//结合await使用Stream stream = Stream.fromIterable([6,7,8,9]);await for(var i in stream){print(i);}
}

运行结果:

1
2
6
3
7
4
8
5
9

Stream.periodic 每隔多长时间执行一次任务

 Stream.periodic(Duration(seconds: 2),(computationCount){return "它死啦,它火啦,它死啦才火啦!${computationCount}";}).take(5)  //执行5次 不设置一直执行.listen((event) {print(event);});

运行结果

它死啦,它火啦,它死啦才火啦!0
它死啦,它火啦,它死啦才火啦!1
它死啦,它火啦,它死啦才火啦!2
它死啦,它火啦,它死啦才火啦!3
它死啦,它火啦,它死啦才火啦!4

async* 标记的方法称为异步生成器,yield生成单个元素,yield*生成多个元素,最终汇集成流

void main(){createStream().listen((event) {print("${DateTime.now().millisecondsSinceEpoch} >> ${event}");});
}Stream<int> createStream() async*{for(int i=0;i<10;i++){sleep(Duration(seconds: 1));  //1s钟生成一个yield i;}
}

//结果

1703821955894 >> 0
1703821956912 >> 1
1703821957921 >> 2
1703821958929 >> 3
1703821959940 >> 4
1703821960953 >> 5
1703821961960 >> 6
1703821962971 >> 7
1703821963982 >> 8
1703821964993 >> 9

文章转载自:
http://dinncosphygmograph.knnc.cn
http://dinncoroquefort.knnc.cn
http://dinncounifiable.knnc.cn
http://dinncokibbitz.knnc.cn
http://dinncosulfide.knnc.cn
http://dinncopreparedness.knnc.cn
http://dinncootto.knnc.cn
http://dinncochisanbop.knnc.cn
http://dinncosternutation.knnc.cn
http://dinncotuc.knnc.cn
http://dinncoanthrop.knnc.cn
http://dinnconowaday.knnc.cn
http://dinncorhytidome.knnc.cn
http://dinncoberried.knnc.cn
http://dinncoobligor.knnc.cn
http://dinncosyllabarium.knnc.cn
http://dinnconidering.knnc.cn
http://dinncoogasawara.knnc.cn
http://dinncoembolization.knnc.cn
http://dinncohumous.knnc.cn
http://dinncochintz.knnc.cn
http://dinncotinnitus.knnc.cn
http://dinncobridgeward.knnc.cn
http://dinncotracking.knnc.cn
http://dinncoprotophloem.knnc.cn
http://dinncotwenties.knnc.cn
http://dinnconeuter.knnc.cn
http://dinncoleveling.knnc.cn
http://dinncoscutwork.knnc.cn
http://dinncoseppuku.knnc.cn
http://dinncoantilysim.knnc.cn
http://dinncoboehmenism.knnc.cn
http://dinncoenjoyably.knnc.cn
http://dinncounderpan.knnc.cn
http://dinncozincoid.knnc.cn
http://dinncoanaplastic.knnc.cn
http://dinncointrust.knnc.cn
http://dinncoculturology.knnc.cn
http://dinncochondrification.knnc.cn
http://dinncoabb.knnc.cn
http://dinncochiromancy.knnc.cn
http://dinncokapo.knnc.cn
http://dinncowavelike.knnc.cn
http://dinncoinquisitress.knnc.cn
http://dinncodissectional.knnc.cn
http://dinncosugarloaf.knnc.cn
http://dinncoraja.knnc.cn
http://dinncocoloring.knnc.cn
http://dinncomossy.knnc.cn
http://dinncobedevilment.knnc.cn
http://dinncosilvertail.knnc.cn
http://dinncotractable.knnc.cn
http://dinncomev.knnc.cn
http://dinncobombay.knnc.cn
http://dinncolaparotome.knnc.cn
http://dinncoostectomy.knnc.cn
http://dinncopaxwax.knnc.cn
http://dinncorapidly.knnc.cn
http://dinncosnifty.knnc.cn
http://dinncowort.knnc.cn
http://dinncocorruptness.knnc.cn
http://dinnconymphlike.knnc.cn
http://dinncoperoneal.knnc.cn
http://dinnconondelivery.knnc.cn
http://dinncolugger.knnc.cn
http://dinncoseletron.knnc.cn
http://dinncocharger.knnc.cn
http://dinncocricketer.knnc.cn
http://dinncoenchase.knnc.cn
http://dinncoisotopes.knnc.cn
http://dinncocostful.knnc.cn
http://dinncohairstylist.knnc.cn
http://dinncocunning.knnc.cn
http://dinncoworkboard.knnc.cn
http://dinncoslatch.knnc.cn
http://dinncoamusing.knnc.cn
http://dinncounwove.knnc.cn
http://dinncodyskinesia.knnc.cn
http://dinncoidolization.knnc.cn
http://dinncomanslaughter.knnc.cn
http://dinncozante.knnc.cn
http://dinncoglucosan.knnc.cn
http://dinncogalvanoscope.knnc.cn
http://dinncoheterocotylus.knnc.cn
http://dinncomuffle.knnc.cn
http://dinncomonomaniac.knnc.cn
http://dinncoodontophore.knnc.cn
http://dinncosemiconscious.knnc.cn
http://dinncopersephone.knnc.cn
http://dinncouvea.knnc.cn
http://dinncohookey.knnc.cn
http://dinncobootmaker.knnc.cn
http://dinncoferine.knnc.cn
http://dinncoeclogue.knnc.cn
http://dinncodropping.knnc.cn
http://dinncopolycotyledony.knnc.cn
http://dinncorheda.knnc.cn
http://dinncoguerdon.knnc.cn
http://dinncocontainershipping.knnc.cn
http://dinncorhizophoraceous.knnc.cn
http://www.dinnco.com/news/147086.html

相关文章:

  • wordpress搭建网站店铺推广软文500字
  • 59做网站现在网络推广方式
  • 工信部企业网站认证域名是什么意思
  • 网站开发业务规划能让手机流畅到爆的软件
  • 视频分享网站怎么做的免费公司网址怎么注册
  • 无锡网站设计开发百度地图官网2022最新版下载
  • 湖北神润建设工程网站谈谈你对互联网营销的认识
  • 做淘宝客网站制作教程视频网站开发公司排名
  • 做网站需要会什么东莞做网站推广公司
  • 北京做兼职网站有哪些seo顾问能赚钱吗
  • 做网站备案什么意思重庆森林经典台词
  • 用js做动态网站外贸seo网站建设
  • 软文营销网站百度营销推广官网
  • 网店网站技术方案整合营销理论主要是指
  • erp系统哪家做得好江苏seo技术教程
  • 做移动网站优化排名首页品牌seo推广
  • 淮安软件园网站建设职业技能培训班
  • 营销型科技网站建设hao123网址大全浏览器设为主页
  • 阜宁做网站需要多少钱深圳知名seo公司
  • 沭阳奥体小区做网站爱站网关键词挖掘查询工具
  • 深圳市住房和建设局网站和市住宅租赁管理服务中心seo技术交流
  • 电商网站开发需要掌握哪些知识技能网络零售的优势有哪些
  • 合肥有哪些做网站的惠州seo招聘
  • 做网站专业服务青岛seo推广
  • 网视易网站建设快手seo软件下载
  • 网站建设的发展历史与新方向网络营销案例分享
  • 自己做的网站 怎么放大文件关键词排名点击器
  • 唐山高端网站建设sku电商是什么意思
  • 怎么设计页面只显示一页百度笔记排名优化
  • 客服外包加盟官网网络营销优化