javascript - 将查询结果存储在局部变量中并在 Angular 中发送相同的确认

标签 javascript angular angular-services

我的节点服务器正在给我一个查询结果的响应,我想将其存储在我的 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/

相关文章:

lambda 的 Javascript 隐式参数名称

javascript - <a> 没有 href ="#"的脚本链接

javascript - 如何使用JAX-RS在REST中将Javascript日期传递给Java LocalDate和LocalDateTime

Angular - 仅在单击的行上启用按钮

javascript - 如何使函数在angularjs中的两个或多个 Controller 之间可重用

javascript - 如何求和json数组

javascript - 刷新页面后 Angular 8 松散数据

javascript - Angular : Provider must define factory method

javascript - 扩展 Angular 服务/工厂以获取日期数组和整数数组,并创建带有键值对的数组

javascript - 基于分层(父子)数据的数据驱动面包屑