我们知道 takeWhile 操作符在条件函数不满足时立即触发流的 complete 事件,所表现出来的效果就是点击任何按钮都不再有任何反应。 当我们点击开始按钮时,定时器流...
我们知道 takeWhile 操作符在条件函数不满足时立即触发流的 complete 事件,所表现出来的效果就是点击任何按钮都不再有任何反应。 当我们点击开始按钮时,定时器流...
之前的文章中我们介绍过了 scan 操作符,和 JavaScript 数组的 reduce 函数很像。其实在 RxJS 中也有 reduce 操作符。可是既然已经有了 sca...
书接上文,我们知道只要打开定时器,控制台就会一直输出内容。现在我们提出个小需求,只有在文本框输入的内容和定时器的值相等时才输出。用 map 操作符当然可以实现,但最佳实践是使...
之前文章介绍的例子都是处理一个流中的事件。然而在实际的业务中我们往往会遇到同时处理两个流的需求。比如我们需要从两个不同的 api 获取数据,然后合并数据在前端显示等等。 首先...
今天我们来看看如何改变事件发生的频率。让我们添加两个按钮,分别代表了二分之一秒产生一个事件的事件流和四分之一秒产生一个事件的事件流。根据昨天的文章,我们可以想到用 merge...
今天我们来优化一下之前的程序。在 scan 中我们以匿名函数的形式对一个对象的属性了进行了加 1 操作,我们可以把这个匿名函数变成具名函数,这样做更加灵活,复用性也更佳,对吗...
昨天我们讲到开始和停止一个事件流,回顾一下代码: 现在的情况是,当我们点击停止按钮后再次点击开始按钮,计数又是从 0 开始。如果我们想从停止时的数字继续计数呢?按照常规的编程...
我们知道 Rx 是 push 模式。比如 1 秒产生一个事件的流,即使我们不去使用它,它也会产生事件。如何人为的停止这个流是今天我们要解决的问题。 先把场景搭建好,从页面中得...
响应式编程是一种思想,是一种模式,就像 if else 和 for while 一样,是所有编程语言的基本单元。为什么会这样类比?因为现在基本所有的编程语言都有了自己的 Rx...
一说到函数式编程,无论是在理论上还是实践上,Haskell 肯定首先映入眼帘,F# 和 Scala 紧跟其后。如果你真想函数式编程,踏踏实实去学习上述三门语言吧。但是,函数式...
能否写出高效的代码,要看你对所使用的数据结构的了解程度。实际上,当你用一段程序解决一个问题时,这段程序是否高效的因素之一就是是否选对了数据结构来解决问题。这次我们就聊聊 li...