标签: reactive-programming

什么是(功能)反应式编程?

我已经读过关于反应式编程的维基百科文章.我还阅读了关于功能反应式编程的小文章.描述非常抽象.

  1. 功能反应式编程(FRP)在实践中意味着什么?
  2. 反应式编程(与非反应式编程相反)是由什么组成的?

我的背景是命令式/ OO语言,因此可以理解与此范例相关的解释.

functional-programming terminology frp reactive-programming

1149
推荐指数
15
解决办法
25万
查看次数

ReactiveCocoa vs RxSwift - 优点和缺点?

所以现在有了swift,ReactiveCocoa人员已经在3.0版本中为swift重写了它

此外,还有另一个名为RxSwift的项目.

我想知道人们是否可以添加关于两个框架的设计/ api /哲学的差异的信息(请在SO的精神中,坚持真实的事情,而不是关于哪个是"最佳"的意见)

[注意StackOverflow mods:这个问题有确切的答案,答案是两个框架之间的差异.我认为这也是SO的主题

首先,我阅读ReadMe的最初印象是:

  • 作为熟悉微软"真正的"C#Rx的人,RxSwift看起来更容易识别.
  • ReactiveCococa似乎已经进入了它自己的空间,引入了新的抽象,如Signals vs SignalProducers和Lifting.一方面,这似乎澄清了一些情况(什么是热与冷信号),但另一方面,这似乎增加了框架的复杂性很多

reactive-programming swift reactive-cocoa-3 rx-swift

248
推荐指数
1
解决办法
3万
查看次数

RxJava中flatmap和switchmap有什么区别?

rxjava DOC switchmap的定义是相当含糊,并将其链接到同一页作为flatmap.这两个运营商有什么区别?

reactive-programming rx-java

139
推荐指数
5
解决办法
5万
查看次数

RxJS:我如何"手动"更新Observable?

我认为我必须误解一些基本的东西,因为在我看来,这应该是一个可观察的最基本的案例,但对于我的生活,我无法弄清楚如何从文档中做到这一点.

基本上,我希望能够做到这一点:

// create a dummy observable, which I would update manually
var eventObservable = rx.Observable.create(function(observer){});
var observer = eventObservable.subscribe(
   function(x){
     console.log('next: ' + x);
   }
...
var my_function = function(){
  eventObservable.push('foo'); 
  //'push' adds an event to the datastream, the observer gets it and prints 
  // next: foo
}
Run Code Online (Sandbox Code Playgroud)

但是我找不到像这样的方法push.我正在使用它作为点击处理程序,我知道他们已经Observable.fromEvent为此,但我正在尝试将它与React一起使用,而我宁愿只能在回调中更新数据流,而不是使用完全不同的事件处理系统.基本上我想要这个:

$( "#target" ).click(function(e) {
  eventObservable.push(e.target.text()); 
});
Run Code Online (Sandbox Code Playgroud)

我得到的最接近的是使用observer.onNext('foo'),但这似乎并没有真正发挥作用,并且这是在观察者身上调用的,这似乎并不正确.观察者应该是对数据流作出反应的东西,而不是改变它,对吧?

我只是不理解观察者/可观察的关系吗?

reactive-programming rxjs

124
推荐指数
2
解决办法
7万
查看次数

为什么在Redux-Saga上使用Redux-Observable?

我使用过Redux-Saga.用它编写的代码到目前为止很容易理解,除了JS生成器功能不时弄乱我的脑袋.根据我的理解,Redux-Observable可以实现处理副作用但不使用生成器功能的类似工作.

然而,来自Redux-Observable的文档并没有提供很多关于它为什么优于Redux-Saga的观点.我想知道是否使用生成器函数是使用Redux-Observable的唯一好处.使用Redux-Observable而不是Redux-Saga会有什么缺点,不足或妥协?提前致谢.

javascript reactive-programming redux redux-saga redux-observable

122
推荐指数
6
解决办法
3万
查看次数

什么是"回调地狱"以及RX解决它的方式和原因?

有人可以给出一个明确的定义以及一个简单的例子来解释什么是不知道JavaScript和node.js的人的"回调地狱"?

何时(在什么样的设置中)出现"回调地狱问题"?

它为什么会发生?

"回调地狱"总是与异步计算有关吗?

或者也可以在单线程应用程序中发生"回调地狱"?

我参加了Coursera的Reactive课程,Erik Meijer在他的一个讲座中说RX解决了"回调地狱"的问题.我问在Coursera论坛上什么是"回调地狱",但我没有得到明确答案.

在一个简单的例子中解释"回调地狱"之后,你能否展示RX如何在这个简单的例子中解决"回调地狱问题"?

javascript callback reactive-programming language-lawyer rxjs

100
推荐指数
4
解决办法
6万
查看次数

Angular中的Subject vs BehaviorSubject vs ReplaySubject

我一直在寻找那些3:

主题,行为主体重播主题.我想使用它们,知道何时以及为什么,使用它们有什么好处,虽然我已阅读文档,观看教程和搜索谷歌,但我没有对此有任何意义.

那他们的目的是什么?一个真实的案例将是非常感谢它甚至不必编码.

我更喜欢一个干净的解释,而不只是"a + b => c,你订阅了......"

谢谢

javascript reactive-programming rxjs angular2-observables angular

89
推荐指数
6
解决办法
3万
查看次数

当前功能反应式编程实现的状态是什么?

我正在尝试在Haskell中可视化一些简单的自动物理系统(例如摆锤,机器人手臂等).通常这些系统可以用类似的方程来描述

df/dt = c*f(t) + u(t)

其中,u(t)代表了某种"智能控制"的.这些系统看起来非常适合功能反应式编程范例.

因此,我通过保罗·哈达克抓起书"表达的哈斯克尔学校",并发现,领域特定语言"FAL"(功能动画语言)提出有实际工作相当pleasently我简单的玩具系统(虽然某些功能,尤其是integrate,似乎有点懒得有效使用,但很容易修复).

我的问题是,对于今天更先进甚至实际的应用,更成熟,最新,维护良好,性能优化的替代方案是什么?

这个wiki页面列出了Haskell的几个选项,但我不清楚以下几个方面:

  1. "反应"的状态,来自Conal Eliott的项目(据我所知)是这种编程范式的发明者之一,看起来有点陈旧.我喜欢他的代码,但也许我应该尝试其他更新的替代品?在语法/性能/运行时稳定性方面,它们之间的主要区别是什么?

  2. 引用2011年的一项调查,第6节," ...... FRP实施仍然没有足够的效率或足够可预测的性能,无法在需要延迟保证的领域中有效使用...... ".Alghough调查提出了一些有趣的可能的优化,鉴于FRP是有超过15年,我得到的印象是,这个性能问题可能会是一件非常,甚至本来就很难在几年内至少解决.这是真的?

  3. 该调查的同一位作者在他的博客中谈到了"时间泄漏" .问题是FRP独有的,还是我们在用纯粹的非严格语言编程时通常会遇到的问题?您是否曾经发现,如果性能不够,那么随着时间的推移稳定基于FRP的系统就太难了?

  4. 这还是一个研究水平的项目吗?人们喜欢工厂工程师,机器人工程师,金融工程师等实际使用它们(用适合他们需要的各种语言)吗?

虽然我个人更喜欢Haskell实现,但我愿意接受其他建议.例如,拥有一个Erlang实现会特别有趣 - 那么拥有一个智能的,自适应的,自学的服务器进程就很容易了!

erlang haskell functional-programming reactive-programming

87
推荐指数
3
解决办法
1万
查看次数

合并一个Observable列表并等待所有完成

TL; DR 如何转换Task.whenAll(List<Task>)RxJava

我现有的代码使用Bolts构建异步任务列表,并等待所有这些任务完成后再执行其他步骤.从本质上讲,它构建一个List<Task>并返回一个单独的Task,当列表中的所有任务完成时,按照Bolts站点上的示例标记为已完成.

我期待,以取代BoltsRxJava和我假设建立的异步任务列表(在事先不知道大小)和包装他们都到一个单一的这种方法Observable是可行的,但我不知道怎么办.

我试着看merge,zip,concat等...但不能去上工作List<Observable>,我会被建立,因为他们似乎都面向工作的只有两个Observables,如果我理解正确的文档在一个时间.

我正在努力学习RxJava并且仍然是新手,所以请原谅我,如果这是一个明显的问题,或者在某个地方的文档中解释过; 我试过搜索.任何帮助将非常感激.

java reactive-programming rx-java rx-android

76
推荐指数
3
解决办法
6万
查看次数

Node.js Streams vs. Observables

在了解了Observables之后,我发现它们与Node.js流非常相似.两者都有一种机制,可以在新数据到达时通知消费者,发生错误或没有更多数据(EOF).

我很想了解两者之间的概念/功能差异.谢谢!

javascript reactive-programming node.js rxjs bacon.js

71
推荐指数
1
解决办法
2万
查看次数