栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

RxJS主题不同的语义是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

RxJS主题不同的语义是什么?

语义因主题类型而异。我将它们分为两种:vanilla(

Rx.Subject
)和特殊用途主题(其他三种)。专用主题由于其专业性(例如,完成/重新连接行为)而具有一些共同之处,因此具有一些香草主题的部分语义。

Vanilla Rx.Subject语义

  1. 主要特点

    • 主题实现观察者,可观察的界面(以及在
      dispose
      原型上具有处理程序的一次性界面)。这意味着,除其他外,它们具有:
    • 观察者接口:
      onNext
      onError
      onComplete
      方法
    • 可观察的界面:
      subscribe
      方法
    • 您可以将主题投射给观察者或可观察对象,如果需要,可以隐藏额外接口(参见
      .asObserver()
      .asObservable()
      的实现。
    • 如果该主题是可观察的,则可以订阅多个观察者。然后,该可观察对象将向所有观察者广播其数据。在内部,主题保持着一组观察者。
    • 主题是观察者,您可以订阅任何可观察的对象
    • 组成主题的观察者和可观察对象是两个不同的实体,如果这是您的用例,则可以独立使用它们。
    • dispose
      设置主题将取消所有观察者的订阅并释放资源。
    • 主题不使用调度程序,而是假设所有序列化和语法正确性均由主题的调用者处理。
    • 主题的默认行为是将它们的值 同步 发送给观察者, 从第一个订阅的观察者到最后一个观察者开始 在大多数情况下,顺序并不重要,而在其他情况下,顺序却无关紧要。

我引用了Rxjs合约和语法的一个关键方面:

该语法允许可观察的序列将任何数量(0或更多)的onNext消息发送到订阅的观察者实例,还可以选择后跟单个成功(onCompleted)或失败(onError)消息。

  • (由创建的

    new Rx.Subject()
    )香草主题实现了该语法:
    onCompleted
    被调用一次后,对的所有后续调用都将
    onNext
    被忽略。
    onCompleted
    同一观察者的第二次调用也将被忽略。如果观察者订阅了主题的可观察方,则其
    onComplete
    回调将立即被调用。

    1. 创建

    2. new Rx.Subject()

返回一个主题,该主题将其观察者与其可观察的对象连接起来。本示例摘自官方文档,并描绘了如何使用主题作为代理。该主题已订阅源(观察者侧),并且也被观察者(可观察侧)收听。对

onNext
(观察者端)的任何调用都会导致可观察端
onNext
为其每个观察者调用相同的值。

* `Rx.Subject.create(observer, observable)`

从指定的观察者创建一个可观察的主题。这两个不一定连接。可以看到一个很好的示例,该示例的实现

Rx.Dom.fromWebSocket
返回一个主题,该主题用于从套接字发送和接收数据。主题的观察者侧将数据发送到套接字。可观察端用于侦听来自套接字的传入数据。此外,以这种方式创建的主题没有
dispose
方法。

专门的Rx.Subject语义

  • reactivex.io
    文档很好地涵盖了专业主题的大多数语义。
  • 值得一提的其他有趣问题涉及完成后的行为。

希望我没有做错太多。我很乐意得到纠正。最后说明,这对于RxJS v4应该有效。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/518007.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号