AngularJS 是函数式反应式编程吗?

Posted

技术标签:

【中文标题】AngularJS 是函数式反应式编程吗?【英文标题】:Is AngularJS Functional Reactive Programming? 【发布时间】:2013-07-24 15:00:39 【问题描述】:

每次看到Functional Reactive Programming这个短语我都意识到我不明白它是什么。然后我回到this question,想我明白它是什么,然后循环重复。

榜样不是另一种教学方式,而是唯一的教学方式-阿尔伯特·爱因斯坦

Angular 是 FRP 的示例/实现吗?为什么或为什么不?

【问题讨论】:

如果这个问题太宽泛,那么我看不出你怎么能问任何关于 FRP 的问题而没有同样的问题。 AngularJS 不是一种编程语言,而是一个框架 :-) 【参考方案1】:

我不这么认为。 Angular 与状态密切相关。事实上,如果你观察一个连续函数,你会遇到无限递归,因为状态总是脏的。

为了使连续函数在浏览器中工作,即使状态是脏的,摘要循环也需要停止。在状态不再脏之前,Angular 不会停止。

编辑

Dart 可用于 FRP:http://victorsavkin.com/post/55007674849/functional-reactive-programming-in-dart

【讨论】:

@tietyt 为 FRP 添加了对 Dart 的引用 最好至少为操作澄清一下,尽管 angular.js 可能不是完全基于您的断言的 FRP,但它至少是反应式编程。 我不同意,这么多框架的 something 像 angular.js 这样的响应式毫无意义。【参考方案2】:

正如 John Tseng 所回答的,AngularJS 不是 FRP 的示例。但是,您可以通过 angular-bacon 模块将 FRP 与 AngularJS 一起使用。

【讨论】:

以上是关于AngularJS 是函数式反应式编程吗?的主要内容,如果未能解决你的问题,请参考以下文章

Spring5-Reactor函数式编程

Spring5-Reactor函数式编程

从Reactor到WebFlux

函数式响应式编程-FRP简介

使用 Javascript 进行反应式编程

反应式编程与事件驱动编程有何不同?