rxjs Combine最新发布在Chrome中,但不是Safari

时间:2018-07-17 18:23:19

标签: angular typescript rxjs

我在组件中有这样的代码:

  constructor(
    public projectS: ProjectService,
    private revenueAnalysis: RevenueAnalysisService,
    public projectYear: ProjectYearService,
  ) {
    this.setupCharts();
    this.projectYear.projectYears$.subscribe(data => console.log('1', data));
    this.revenueAnalysis.revenueAnalysis$.subscribe(data => console.log('2', data));
    this.projectS.project$.subscribe(data => console.log('3', data));

  }

...

setupCharts() {
    combineLatest(
      this.projectYear.projectYears$,
      this.projectS.project$,
      this.revenueAnalysis.revenueAnalysis$
    )
      .subscribe(
        ([projYears, project, _]) => {
          console.log('4 SETUP CHARTS');
          ...

在Chrome(macOs)中,我得到了预期的结果:3、1、2、4被记录下来(按该顺序)

在Safari(macOs)中,我得到结果:3、1、2得到记录,但没有4

任何线索?

1 个答案:

答案 0 :(得分:0)

我找到了解决方法

public function init() { $this->setAttrib('id', 'my_form'); $this->setName('form_test'); $this->setSubmitLabel($this->translate('Save Changes')); $this->setValidatePartial(true); } 以前是<input name="instance_name" id="my_form_instance_name-kchovmizxlas" value="" aria-describedby="desc_my_form_instance_name-kchovmizxlas" type="text"> 类型的

我将其更改为this.revenueAnalysis.revenueAnalysis$,并在代码中添加了一些空检查。突然间它起作用了。

虽然没有解释为什么它不能在所有浏览器中与ReplaySubject一起使用。.