如何将额外的参数传递给RxJS映射运算符

时间:2018-11-27 13:13:41

标签: angular rxjs

在Angular应用中,我使用df.rename(columns={("B","min"):"renamed"},inplace=True) print(df) B C min max mean A 1 0 2 1.0 2 3 4 3.5 和RxJS运算符进行一些API调用。例如:

HttpClient

return this.httpClient.put(url, JSON.stringify(treeOptions)) .pipe( map(this.extractTreeData), catchError(this.handleError) ); 方法基本上更改了API返回的一些属性:

extractTreeData

我需要根据树的类型进行更多更改。如何将这种类型传递给映射方法?我的意思是:

private extractTreeData(res: any) {
    let apiTree = res.data;  // The tree comes inside the 'data' field
    let newTree : any;

    try {
        let str = JSON.stringify(apiTree);

        str = str.replace(/"children"/g, '"items"');
        str = str.replace(/"allowdrag"/g, '"allowDrag"');

        newTree = JSON.parse(str);        
    } catch(e) {
        // Error while parsing
        newTree = null;
    }

    return newTree || {};
}

预先感谢

1 个答案:

答案 0 :(得分:4)

map(this.extractTreeData)

等同于

map(tree => this.extractTreeData(tree))

如果使用扩展形式,则可以对其进行更新以传递更多参数,如下所示:

map(tree => this.extractTreeData(tree, treeType))

尽管您没有显示treeType的来源,但很难给您完整的答案。