• RxJS


    事件总线

    EventBus,消息或事件流动的管道,集中式事件处理机制:负责订阅者、事件等信息的存储,同时处理事件的流动和分发。

    • 基于观察者模式思想,摒弃观察者模式需要显式注册回调的缺点
    • 订阅者和发布者解耦
    • 简化组件间通信

    至于观察者模式,发布订阅模式有两种方式:

    • 简单方式:Publisher维护一个订阅者列表,当状态改变时循环遍历列表通知订阅者
    • 委托方式:Publisher定义事件委托,Subscriber实现委托

    推荐委托方式。

    响应式编程

    Reactive Programming(RP),基于异步数据流交互的编程范式,本质上是对数据流或某种变化所作出的反应。

    • Stream:按时间排序的(即将发生的)事件的序列,响应式编程的核心

    事件驱动:用某个函数订阅事件流,每当有一个新的事件时,流将激活这个函数,以使代码对事件作出响应。

    • 观察值:某个函数
    • 被观察者:事件流

    与数组相比,数组是在空间上的值的序列,事件流是随时间的值的序列。

    Promise对象可以看作是一个只有一个返回值的被观察者。

    // req stream
    var requestStream = Rx.Observable.just(requestUrl);
    // ret stream
    var responseStream = requestStream
      .flatMap(function(requestUrl) {
        return Rx.Observable.fromPromise(jQuery.getJSON(requestUrl));
    });
    // 订阅
    responseStream.subscribe(function(response) {
      // render `response` to the DOM however you wish
    });
    

    具体讲解请参见:https://www.cnblogs.com/android-blogs/p/5586395.html 

    RxJS

    • 基于响应式编程实现的JavaScript高性能库,包含丰富的数据变换方法的函数库
    • 提供管理复杂异步应用非常优秀的方案
  • 相关阅读:
    Python 字符串(一)
    UVA 11552 四 Fewest Flops
    UVA 10534 三 Wavio Sequence
    UVA 1424 二 Salesmen
    UVA 11584 一 Partitioning by Palindromes
    CodeForces 549G Happy Line
    CodeForces 451C Predict Outcome of the Game
    CodeForces 567C Geometric Progression
    CodeForces 527B Error Correct System
    CodeForces 552C Vanya and Scales
  • 原文地址:https://www.cnblogs.com/wjcx-sqh/p/9325917.html
Copyright © 2020-2023  润新知