我的节点服务器正在给我一个查询结果的响应,我想将其存储在我的 Angular 服务的本地变量(电影)中,并将确认消息({“result”:true})传递给询问的 angular 组件。
redirect(id){
this.movie.getMovie(id).subscribe( confirmation =>{
if(confirmation.result) this.router.navigate(["/movies/movDetails"]);
});
}
这是我的 Angular 组件
getMovie(id):Observable<any>{
return this.http.post("http://localhost:3000/getMovie",{ "_id":id }).subscribe(IncomingValue => this.movie = IncomingValue).pipe(map( return {"result":true} ));
}
服务组件
最佳答案
检索数据时,通常使用 get
,不是 post
.这是我的一个简单获取的样子:
getProducts(): Observable<IProduct[]> {
return this.http.get<IProduct[]>(this.productUrl);
}
使用你的代码......然后你可以使用 RxJS 管道操作符来执行额外的操作:
getMovie(id):Observable<any>{
return this.http.post("http://localhost:3000/getMovie",{ "_id":id })
.pipe(
tap(IncomingValue => this.movie = IncomingValue),
map(() => {return {"result":true}} )
);
}
第一个可管道操作符 tap 将传入的值存储在您的本地属性中。
第二个可管道操作符 map 将结果映射为定义的键值对。
希望这可以帮助。
关于javascript - 将查询结果存储在局部变量中并在 Angular 中发送相同的确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51527202/