В приложении Angular я использую операторы HttpClient
и RxJS для выполнения некоторых вызовов API.Например:
return this.httpClient.put(url, JSON.stringify(treeOptions))
.pipe(
map(this.extractTreeData),
catchError(this.handleError)
);
Метод extractTreeData
в основном изменяет некоторые свойства, возвращаемые API:
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 || {};
}
Мне нужно сделать еще некоторые изменения в зависимости от типа дерева.Как я мог передать этот тип сопоставленному методу?Я имею в виду:
[...]
.pipe(
map(this.extractTreeData), <== HOW TO PASS VARIABLE 'treeType' TO extractTreeData
[...]
Заранее спасибо,