2016-02-24 13:20 "@freeren"的内容
如果提前响应,那前提条件是响应不可能没请求就响应吧?另外,响应所需的数据怎么提供呢?如果响应所需数据是前一个响应返回的数据,那如何做 ...
Reactive可认为是主动响应或主动反应,强调积极主动,当然响应这个词语让人容易联想到请求,请求响应是我们通常联系起来使用,其实最初我翻译时是将Reactive编程翻译成反应式编程,但是网络上其他人将其翻译成响应式编程。
Reactive是基于事件驱动的,所以,事件模型不同于请求/响应模型(request/response),如果没有请求,后端也会在你设置响应条件时,如果某时刻条件满足,触发事件,主动推送响应。如果像这样不需要请求的响应,响应所需要的数据如何提供?很显然,这如同linux的contab或windows的计划任务,类似数据库的trigger,一旦状态发生变化,会导致相应的Action发出,React.js便是基于这点。
如果响应是基于前一个响应的返回的数据,这如同两个函数串联在一起,一个函数的输出是另外一个函数的输入,这就属于函数编程范畴,java 8 Stream支持的是函数组合的同步模型,而Reactive方式比如RxJava支持函数组合的异步模型,RxJava支持很多java 8 Stream类似的相同高层次操作比如map和filter,区别是RxJava是异步的。