首页 > 解决方案 > Angular 7 rxjs/forkJoin:您在预期流的位置提供了“未定义”。您可以提供 Observable、Promise、Array 或 Iterable

问题描述

下面的逻辑 component.js 文件。

ngOnInit() {  
   const join= forkJoin( this.getReconciliationData()); //import { forkJoin } from 'rxjs/internal/observable/forkJoin';
   const subscribe= join.subscribe(result=>this.setReferenceTableData()); //Getting issue here
  }
  getReconciliationData() {
    this.commonService.getMasterData(MaterDataType.LOCALREFERENCES).subscribe(result=>{
      this.categories=result;
      this.categories.forEach(c => {
        c.children.forEach(subC => {
          this.references.push(...subC.references);
        });
        this.subCategories.push(...c.children);
      });
    });

  }
  setReferenceTableData=function(){
    this.dataSource=new MatTableDataSource(this.references);
  }

执行时出错。

***core.js:7187 ERROR TypeError: You provided 'undefined' where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.
    at Object.push../node_modules/rxjs/internal/util/subscribeTo.js.exports.subscribeTo (subscribeTo.js:29)
    at Object.from (from.js:11)
    at _loop_1 (forkJoin.js:42)
    at Observable._subscribe (forkJoin.js:67)
    at Observable.push../node_modules/rxjs/internal/Observable.js.Observable._trySubscribe (Observable.js:44)
    at Observable.push../node_modules/rxjs/internal/Observable.js.Observable.subscribe (Observable.js:30)
    at MedicalfileInternalServiceModelComponent.ngOnInit (medicalfile-internal-service-model.component.ts:69)
    at checkAndUpdateDirectiveInline (core.js:24503)
    at checkAndUpdateNodeInline (core.js:35163)
    at checkAndUpdateNode (core.js:35102).***

. 我想在这里寻找 getReconciliationData() 函数的返回对象。但在我的情况下,不需要返回声明。任何人请帮助我们解决这个问题。我需要一个一个的函数执行。

标签: angular

解决方案


forkJoin期望数组。

试试这样:

const join= forkJoin( [this.getReconciliationData()])

推荐阅读