- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我可以从文档中看到:
Cold Observables 从一开始就向每个 Observer 发出整个值序列。
和
ReplaySubject 向任何观察者发送源 Observable 发出的所有项目,无论观察者何时订阅。
那么这两个概念有什么区别呢?
谢谢
最佳答案
一旦 ReplaySubject
订阅了源 observable,源就开始发射,并且 ReplaySubject
成为一个热的 observable。从订阅者的 Angular 来看,订阅 ReplaySubject
可能并不明显,因为它获取了所有先前发出的值。但是 ReplaySubject
只订阅源一次,因此主题能够将这些源值重新发送给后来的订阅者的唯一方法是缓存这些值。
所以不同之处在于,当直接订阅源 observable 时,源会为每个订阅者重新发出值,而使用 ReplaySubject
订阅源时,源只会发出一次,以及该主题的任何订阅者,获取这些缓存值。
考虑以下可观察源
var source = Rx.Observable.create(function(subscriber) {
for (var i = 0; i < 2; i++) {
subscriber.onNext(i);
console.log("onNext: " + i);
}
subscriber.onCompleted();
});
如果我们直接订阅源,我们应该会看到两次日志集
source.subscribe(function(value) {});
source.subscribe(function(value) {});
//onNext: 0
//onNext: 1
//onNext: 0
//onNext: 1
使用 ReplaySubject
,一旦它订阅了源,源就开始发射,导致热主题开始发射并缓存值。
var subject = new Rx.ReplaySubject();
source.subscribe(subject);
setTimeout(function() {
console.log('subscribe subject');
subject.subscribe(function(value) { console.log('subscriber')});
subject.subscribe(function(value) { console.log('subscriber')});
}, 100);
//onNext: 0
//onNext: 1
//subscribe subject
//subscriber
//subscriber
//subscriber
//subscriber
在这里,您会看到源在被主题订阅后开始发射。但是对主题的任何订阅都不会导致源重新发送,就像前面的示例一样,每个新订阅者都会导致源重新发送。
关于javascript - Cold observable 和 Replay subject 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36240448/
如果 Subject 继承自 Observable,那么基于任何 Subject 的下一个选项有什么区别,例如: private val locationSubject: ReplaySubject
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我正在尝试从内部使用 Rx.Subject 的函数返回一个可观察对象。当然,与任何好的 API 一样,实现细节应该完全从消费者那里抽象出来。但是,使用 Subject.asObservable() 似
我使用 angular2 rxjs 来测试它的多播功能,这是我的代码: var source = Observable.from([1, 2, 3]); var subject = new Subje
我需要一个可以显示每个主题的最高分数计数的查询。假设 3 名学生的科学成绩需要达到 98 分 count marks subject 3 98 Maths 最佳答案 首先找到每个
我正在使用JavaFX 11(OpenFX)运行一些应用程序。该应用程序是用IntellijIdea编写的,并使用gradle构建。在IDE中运行时,一切正常。构建jar时,它构建成功,但是当我尝试执
我继承自模板类。当我进入教师类(class)时,我想进入学科类(class),反之亦然。我收到错误 Invalid use of incomplete type struct Subect; void
Angular 2 和 Typescript 应用。 我在 NPM 包中有一个抽象类,我试图在我的应用程序代码中提供实现。这一切都很好,直到我添加了公众 isLoggedIn:Subject;属性(p
我从 this tutorial 中提取了示例模板代码并执行以下两个步骤开始 - npm install//工作正常并创建了包含所有依赖项的 node_modules 文件夹 npm 开始//失败并出
我需要答案来显示最低分和最高分,同时给出正确的主题 import java.util.Scanner; //import package class Task11 { public stati
如果我的这个类有一个在其生命周期中发出单一值的主题: export class MyClass { myEmitter$: Subject = new Subject(); someMetho
我正在尝试用 ionic 制作一个小应用程序,但是当我从 UI 调用 $scope.saveClass() 函数时它给了我这个错误。 无法获取未定义或空引用的属性“subject” 我不明白,因为他不
背景 我有一个核心数据实体 Entry 与另一个实体 DataField 有关系: class Entry: NSManagedObject { //[...] @NSManaged
我知道这个问题更像是一个语法问题,但是如果你有一组 Penn Treebank 标记,你如何确定句子的“主题”,例如: [WP][VBZ][DT][NN] 是否有任何 Java 库可以接收此类标记并确
我使用 SwiftUI 构建了一个 LoadingView,用于在我从 API 获取远程数据时显示我的应用程序中的一些加载内容。我正在使用 Xcode 版本 11.0 beta 5。 这是Loadin
Subjects 介绍 1. Subjects 是订阅者,也是Observable 订阅者:它能动态的接收新的值。 Observable: 当Subjects有了新值后会通过Event将新值发
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 8年前关闭。 Improve thi
我需要了解主题在 Weblogic 中如何存储和传播。 经过身份验证后,主题存储在 HTTP 层的哪里?在内部,它存储在 HTTPSession 中吗? 同理,EJB层存储在哪里? 我有一个应用程序,
我经常遇到这样的情况,我想要一个 UI 元素来“观察”一个基础值——假设我正在显示一个 int——我想要一个我可以订阅的 IObservable。 我下面一直用的是Subject,直接设置就可以了
我有一个简单的服务。 import { Injectable } from '@angular/core'; @Injectable({ providedIn: 'root' }) export cl
我是一名优秀的程序员,十分优秀!