4

我试图了解 RxJS 的工作原理以及它是否适合我的需要,但我遇到的每一篇文章都假设读者已经熟悉反应式编程概念或了解 .NET 版本。

有没有针对普通 JavaScript 开发人员的材料?

4

4 回答 4

10

我发现前微软员工现在是 Netflix 员工 Jafar Husain 的交互式教程,他们在 Netflix 用于向新员工教授 RxJS 非常有帮助。

它的好处是不熟悉函数式或反应式编程概念。如果您既不知道或已经知道其中一个、另一个或两者都知道,这些教程也很容易导致这些概念的改进。这使它成为一个很好的起点,因为这两个概念都在 RxJS 中使用。

http://jhusain.github.io/learnrx/

来源:https ://youtu.be/gawmdhCNy-A?t=38m6s

还有一个名为RxMarbles的网站,其中包含所有 RxJS 的 observables 方法如何工作的交互式图表。它通过任何给定 RxJS 方法的输入和输出时间轴上的事件说明来展示它们如何工作。您可以在输入时间线上从左到右拖动事件,以了解每种方法的输出和工作方式。

是 Kris Kowal(他是 Promise 库Q的作者)的一篇名为“反应性一般理论”的精彩读物,他的三位同行 Domenic Denicola、Ryan Paul 和 Kevin Smith 对它进行了审阅。您可能只想阅读有关 Observables 的部分,但总体而言,这是一本很棒的书,但有点深奥。

WHATWG 的流规范常见问题解答中也有这篇文章,关于可读流和可观察对象之间的区别。

然后是官方文档

另一个很棒的资源是egghead.io,它有 100 个关于 RxJS 的视频(在撰写本文时),并且大部分都在课程中展示。它们非常好,(简明扼要)但您必须每月支付费用才能访问其中的一些。您可以在一个月内将它们全部看完,而无需支付任何额外费用。

于 2015-06-23T03:48:06.180 回答
3

我个人发现这个精彩的教程https://gist.github.com/staltz/868e7e9bc2a7b8c1f754非常有帮助。

于 2015-01-25T05:47:25.467 回答
1

RxJS 的动手实验室相当不错,虽然有点过时。 http://go.microsoft.com/fwlink/?LinkId=208527 例如,您需要添加几个扩展来处理 toObservable() 以附加到事件,并且不再有 removeTimestamp() 函数。

 /**
 * Creates an observable sequence by adding an event listener to the matching jQuery element
 *
 * @param {String} eventName The event name to attach the observable sequence.
 * @param {Function} [selector] A selector which takes the arguments from the event handler to produce a single item to yield on next.
 * @returns {Observable} An observable sequence of events from the specified element and the specified event.
 */
jQuery.fn.toObservable = function(eventName, selector) {
    return Rx.Observable.fromEvent(this, eventName, selector);
};

Rx.Observable.prototype.logTimestampedValues = function(onNext) {
    return this.timestamp().do(onNext).select(function(t) {
        return t.value;
    });
};

我借用了RemoveTimestamp Rx(已删除但没有忘记)来更正 logTimestampedValues。

我建议在 MSDN 上的初学者指南页面上观看视频,尤其是 Rx Workshop 视频。可能需要一些观点才能理解,但你会到达那里。

让 RX 引起我注意的视频是 InfoQ 上的。我觉得这是一个很好的介绍如何利用它,它可以帮助你更容易地理解这个概念。 http://www.infoq.com/presentations/Netflix-API-rxjava-hystrix

于 2013-11-15T17:30:23.247 回答
0

试试看这个:http ://rx.codeplex.com/SourceControl/latest#Rx/JS/rx-vsdoc.js

它可能不是您想要的,但它会让您开始了解各种功能。它应该有一个非常 LINQ-esk 的方法,所以如果你要查找 LINQ 的示例,比如http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b - 你可能会得到一个了解其中一些是如何工作的。我希望这有帮助。

于 2013-07-28T02:45:44.350 回答