- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有服务:
export class ConfigService {
private _config: BehaviorSubject<object> = new BehaviorSubject(null);
public config: Observable<object> = this._config.asObservable();
constructor(private api: APIService) {
this.loadConfigs();
}
loadConfigs() {
this.api.get('/configs').subscribe( res => this._config.next(res) );
}
}
尝试从组件中调用它:
...
Observable.forkJoin([someService.config])
.subscribe( res => console.log(res) ) //not working
someService.config.subscribe( res => console.log(res) ) // working
...
如何将 Observable.forkJoin
与 Observable
变量 config
一起使用?
我需要将配置存储在服务中并等待它们熄灭,其他人请求未完成停止加载程序。
最佳答案
由于您正在使用 BehaviorSubject
,您应该知道可以手动调用 next()
和 complete()
。
forkJoin()
运算符仅在其所有源 Observable 都已发出至少一个值并且它们都已完成时才会发出。由于您使用的是 Subject 和 asObservable
方法,源 Observable 永远不会完成,因此 forkJoin
运算符永远不会发出任何东西。
顺便说一句,仅对一个源 Observable 使用 forkJoin
没有多大意义。也可以查看类似的 zip()
或 combineLatest()
运算符,也许这就是您所需要的。
两个非常相似的问题:
关于javascript - .asObservable 不想与 Observable.forkJoin 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43258881/
我是 RxSwift 和 Reactive 编程的新手。这是我的代码: let disposeBag = DisposeBag() let dartScore = PublishSubject()
您好,我真的很质疑对主题调用“asObserveable()”的用法。 在我看来,它会产生大量不必要的开销。在我看来,阻止调用“next()”或“complete()”是没有用的。 你能给我一个你应该
我是 Angular2 的新手,我很想知道如果我在 _showNavBar 或 showNavBarEmitter 上订阅,两者都一样(见下面的代码 i正在使用)。有什么区别吗? public _sh
我想知道 asObservable 有什么用? : 根据文档: An observable sequence that hides the identity of the source sequenc
为什么 RxJava 需要 asObservable? 从技术上讲,每个主题都已经是一个可观察的。它比直接类型转换有什么优势 Observable obs = subject; 最佳答案 如果您只是将
标题 如果您基本上有相同的问题并且您的上下文是 Angular,您可能需要阅读答案中的所有评论以获得更多上下文。 这个问题的简短版本 在做 let observe$ = someReplaySubje
我正在尝试使用数据流 block ,我需要监视通过的项目以进行单元测试。 为了做到这一点,我使用了 AsObservable() ISourceBlock 上的方法我的TransformBlock ,
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它. 1年前关闭。 社区在 3 个月前审查了
我有一个问题希望你能帮助我。谢谢 升级到 Typescript 2.9.1 后,编译器提示没有返回方法应该返回的类型。 当前代码: public getCardPairingSession(sessi
我一直在使用这两种(完全相同的方法)来调用 throttleTime,但我不确定它们是否真的相同。 this.scrollSubject$ = new Subject(); this.scrollSu
我想观察我的BehaviourSubject。在 RxJava 1 中我调用了 asObservable() ,现在不见了。 我找到了 publish()但它返回可连接,这是我不想的。 如何在 RxJ
如果 Subject 继承自 Observable,那么基于任何 Subject 的下一个选项有什么区别,例如: private val locationSubject: ReplaySubject
在我的 Android 项目中,我使用 realm作为我的数据存储引擎。我喜欢它! 我也用 RxJava因为它使“线程化”变得容易得多,而且我真的很喜欢整个“响应式(Reactive)思维方式”。我喜
我正在学习 RxJs,我正在寻求对我的假设的确认或纠正。 我正在尝试在我可以在我的服务类的不同位置使用 .next() 的服务中使一个公共(public)只读可见。我想知道这是否是正确的方法: pri
我有服务: export class ConfigService { private _config: BehaviorSubject = new BehaviorSubject(null);
执行Enumerable.AsEnumerable(this IEnumerable source)简单地返回 source .然而Observable.AsObservable(this IObse
我的应用程序使用 RxJava 和 Realm DB。当我查询 Realm 中的数据并调用 Realm.asObservable() 时,RealmResult 发出 2 次。 public clas
在很多使用 RxJS 的代码库中,我似乎遇到了暴露私有(private) Subjects 的模式。如 Observables通过 getter或正常 getObservable()功能。我的问题不是
我无法理解 asObservable method 的基本原理和目的在 RxSwift 的 Observable class . /// A type-erased `ObservableType`.
我是一名初级开发人员,正在使用 Jest 作为单元测试框架来开发 React 应用程序 我必须测试我的 privateRoute 文件: export const PrivateRoute = ({
我是一名优秀的程序员,十分优秀!