代码之家  ›  专栏  ›  技术社区  ›  Karan

角度5组合或重构多个订阅调用

  •  0
  • Karan  · 技术社区  · 7 年前

    我正在使用 角度5.2 在我的Web项目中。在其中一个页面中,我使用多个对不同WebAPI方法的订阅调用。虽然它们是不同的独立调用,也带来了不同的数据集。

    但是我在想是否有一种方法可以将订阅调用组合在一起,用一种语法,并使代码看起来小而整洁。

    ngOnInit(): void {
    
        this._documentService.getTypes()
            .subscribe(px => {
                this._docTypeList = px;
            },
    
            error => {
               console.log("Grid Err:: " + error.message);
            }
            );
    
    
        this._documentService.getCategories()
            .subscribe(rx => {
                this._catList = rx;               
            },
            error => {
                console.log("Grid Err:: " + error.message);  }
            );
    }
    

    是否有方法可以重构此代码以使其简短?

    请建议。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Sachila Ranawaka    7 年前

    使用 forkJoin 组合多个可观测数据

    forkJoin(this._documentService.getTypes(), this._documentService.getCategories() ) 
        .subscribe(rx => {
            this._docTypeList = rx[0] 
            this._catList = rx[1];               
        },
        error => {
            console.log("Grid Err:: " + error.message);  }
        );