Warning: Undefined global variable $debug in /var/www/ourcoders/tiny4cocoa/application/controllers/baseController.php on line 124
有个梨UGlee 2020-01-06 23:08:20 发布的技术动态 - OurCoders (我们程序员)
有个梨UGlee
2020-01-06 23:08:20 发布
Dart的Async函数,可以用then/catch resolve;
Dart的Stream,可以用onDate/onError/onComplete listener;所以目测看起来似乎是和node的callback/emitter没区别的。

但实际上区别是巨大的;当多个emitter要组合时,互斥“拔掉”对方的handler或者destroy是极为常见的;这特么在Flutter里只能用闭包变量block了;在层级多的时候很麻烦;此其一;

其二,Dart的Stream竟然会区分Single Subscription和Broadcast,你大爷的,Event去耦的本质时去除message和message handler的耦合,你管它有多少个listener呢?我挂一个listener只为了debug行不行啊?

emitter只需要一个语义即可完成的事情,Dart:Async重新“发明”了一大堆函数解决。简直了。