当前位置: 首页 > Web前端 > HTML5

rxjs背后的Pull和Push思想Observable设计原则

时间:2023-04-05 20:39:53 HTML5

Observables,顾名思义,就是可以被观察到的事务。在Rxjs的上下文中,Observable随着时间的推移在某个时间点产生数据。Observables可以:连续(永远)产生值,例如区间运算符。值可以产生一次,然后进入完整状态。可能会产生错误然后进入完成状态。Observable是异步事件的强大实现,例如单个动作(HTTP请求)或多个可重复的动作(例如光标移动或按键)。响应式编程是一种构建应用程序以响应应用程序内发生的更改的方法,而不是编写应用程序来处理这些更改。后者是ImperativeProgramming的典型特征,即命令式编程。要理解Observable的设计原则,我们首先需要了解几种典型的生产者和消费者通信的模式。拉(Pull)和推(Push)模型定义了数据生产者如何与数据消费者合作。拉:在拉模型的情况下,消费者决定何时消费或请求数据。当我们创建一个返回值的函数时,该函数就是生产者。但是,该函数在被调用(或请求数据)之前不会产生任何结果。调用函数的代码就是消费者。此调用由消费者按需触发。消费者决定沟通策略。Push推送:Producer主导的推送模型。使用数据的任何人都不知道数据何时到达。他们知道数据到达时要执行的应用程序逻辑,但消费者无法决定数据何时到达。Promises是推模型的典型例子。当任务完成时,promise会产生数据或错误。传递给Promise的回调函数永远不会知道Promise什么时候完成,它只负责当数据成功接收或发生错误时应该执行什么逻辑。