Angular 5合并或重构多个订阅调用

时间:2018-08-28 06:05:20

标签: angular rxjs angular5

我在我的Web项目中使用了 Angular 5.2 。在其中一页中,我正在使用对不同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 个答案:

答案 0 :(得分:1)

使用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);  }
    );