让我们说我有一个服务正在向我的API发送一个帖子请求,一旦响应到了,我就想要一个自定义函数作为过程的一部分执行。
private
我尝试过使用管道运算符,但出于某种原因,它并没有向返回的promise发送错误。
public signin(){
return this.http.post<any>(`${env.API_URL}/user/signin`, { username: user.username, password: user.password }).toPromise();
}
答案 0 :(得分:2)
一种选择是使用这样的代码:
getMovies(): Observable<IMovie[]> {
return this.http.get<IMovie[]>(this.moviesUrl).pipe(
tap(data => console.log(JSON.stringify(data))),
catchError(this.handleError)
);
}
然后,您可以在自来水中添加自定义功能。
所以你的代码看起来更像是这样:
public signin() {
return this.http.post<any>(`${env.API_URL}/user/signin`, { username: user.username, password: user.password }).pipe(
tap(data => this.customFunction(data)),
catchError(error => console.log(error))
);
}
答案 1 :(得分:1)
您可以使用以下代码执行此操作:
public signin() {
return this.http.post<any>(`${env.API_URL}/user/signin`, { username: user.username, password: user.password })
.toPromise()
.then((data) => {
this.customFunction(data)
})
.catch(this.handleError);
}
然后只需定义一个句柄错误函数,或者如果你愿意,可以像使用数据一样使用lambda函数