1、什么是RxJS
- 对,这条鱼就是Rx家族的logo,他并不是Rxjs专有的logo,因为Rx家族里面还有RxAndroid、RxSwift、RxNet等等,我也曾询问过网友,问这是条什么鱼,为什么要用这个当logo,最后网友回答最多、最靠谱点的说法就是:这是条鳗鱼,设计这个logo是为了突出rxjs很优雅的链式调用语法,具体情况还不清楚。
- Rx.JS是英文
Reactive Extensions for JavaScript
的缩写。英文水平好的人可以翻译出来rxjs的中文意思是**JavaScript的响应式扩展 **,那什么是"响应式"?一个人看你不顺眼打了你一下,你立马回应(响应)他两个字"滚蛋",像这种你有变化,其他东西会立马跟着响应的方式就叫做"响应式"。 - 官方也给了对Rxjs的解释:Rxjs是使用 Observables 的响应式编程的库,它使编写异步或基于回调的代码更容易。前半句中
Observables
是个什么东西在下面再讲,咱们先看看后半句说的它能使异步和回调编写的更容易,也就是说他里面肯定有比之前咱们用到的异步和回调方式好的地方对不对,那下面咱们先温故下异步和回调。
2、什么是异步
foo();
bar();
程序运行一般是同步的(synchronous),在上述例子中,如果bar 方法在 foo 方法执行完之后,再执行,这就是同步;如果先执行 foo 方法,foo 方法没执行完,就开始执行 bar 方法,这就成了异步。
3、什么情况下会出现异步
我们都知道 JS 是一个单线程的语言,永远只有一个通道在运行程序。那么既然它是个单线程又如何会有异步呢?咱们先看看一下代码:
var foo = function () {
console.log('f