首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么删除BehaviourSubject会导致我的服务延迟3-4秒?

为什么删除BehaviourSubject会导致我的服务延迟3-4秒?
EN

Stack Overflow用户
提问于 2019-09-21 01:58:20
回答 1查看 39关注 0票数 0

我早些时候创建了一个BehaviourSubject,在订阅它时,我正在进行服务呼叫。但是,由于BehaviorSubject的性质,BehaviouSubject的初始化是不必要的。因此,在进一步阅读后,我将BehaviourSubjedct更改为ReplaySubject(1)

现在,在我定义服务的主@Injectable类中,有另一个独立的服务,一旦我做了上述更改,它就会被延迟。如何确定此处问题的原因?

component.ts

代码语言:javascript
复制
constructor(private _subjectService: SubjectService, private _s1: Service1){
    this._s1.Call1();
    this.testFunction();
}

testFunction(){
this._subjectService.GetData().subscribe(res => {
      if (res !== null) {
         this._s1.Call2();  
     }
   }
}   

SubjectService

代码语言:javascript
复制
  // filterSubject = new BehaviorSubject(<KendoRequestVM>{});
  // filterDataSubject = new BehaviorSubject(<KendoRequestVM>{});

   filterSubject = new ReplaySubject<KendoRequestVM>(1);
   filterDataSubject = new ReplaySubject<KendoRequestVM>(1);

在这里,当我使用BehaviouSubject而不是ReplaySubject时,将调用Call1()。

EN

回答 1

Stack Overflow用户

发布于 2019-09-21 07:26:04

行为主体总是会立即返回(甚至同步返回)。重放主题只有在具有值的情况下才会立即/同步返回。仅仅使用你分享的代码是不可能的,因为你还没有分享填充主题的部分(例如,调用next),但这似乎是最可能的解释。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58033175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档