我正在tap
之前的map
的响应中进行一些更正,但是在map
实现之后却没有被称为tap
。 map
根本无法安慰我。
在我们发送给map
的任何人帮助我之前,在响应中进行更正的最佳方法是什么?
也请在这里告诉我tap
的确切用法。
这是我的代码:
createTranslationId(translationId: ModelTranslationId) {
console.log('translationId', translationId);
return this.http.post<any>(environment.configUrl + `Configuration`, translationId)
.pipe(
tap(response => {
return Object.assign({}, response, {
Response: {
'Name': response.Response.Name,
'Description': response.Response.Description,
'TypeId': response.Response.TypeId,
'Type': response.Response.Type,
'Id': response.Response.Id,
'CreatedBy': response.Response.CreatedBy,
'CreatedDate': response.Response.CreatedDate,
'UpdatedBy': response.Response.UpdatedBy,
'UpdatedDate': response.Response.UpdatedDate
}
});
}),
map(response => {
console.log('response3', response);
return response;
}),
catchError(this.handleError)
);
}
提前谢谢。
答案 0 :(得分:2)
由于水龙头在镜像的Observable上执行操作,因此您无法在源上进行修改,因为您需要与地图操作员一起使用
因此您可以按以下方式更改功能:
createTranslationId(translationId: ModelTranslationId) {
return this.http.post<any>(environment.configUrl + `Configuration`, translationId)
.pipe(map(response => {
response = // Your object modifications
}),
// Other pipe operators
);
}
答案 1 :(得分:1)
Name: package_name
# ...
Files:
scripts/__init__.py
# ^^^^^^^^^^^^^^^^^ This is a package, you can import scripts now
# ... more files ...
package_name-0.1.dist-info/INSTALLER
# This is just the metadata for the package_name, note the .dist-info extension
# This is not a Python package.
是您想要的运算符,用于转换从网络到达的响应。参见map operator doc。
map()
只是根据响应执行某项操作。它不会修改现有的响应,因此没有意义在tap表达式内返回任何东西。参见tap operator doc