代码之家  ›  专栏  ›  技术社区  ›  Karan Gaur

将查询结果存储在局部变量中,并以角度发送对查询结果的确认

  •  1
  • Karan Gaur  · 技术社区  · 7 年前

    我的节点服务器给我一个查询结果的响应,我想把它存储在我的角度服务的局部变量(movie)中,并将确认消息(“result”:true)传递给询问角度组件。

    redirect(id){
        this.movie.getMovie(id).subscribe( confirmation =>{ 
          if(confirmation.result) this.router.navigate(["/movies/movDetails"]);
        });
    }
    

    这是我的角分量

    getMovie(id):Observable<any>{
        return this.http.post("http://localhost:3000/getMovie",{ "_id":id }).subscribe(IncomingValue => this.movie = IncomingValue).pipe(map( return {"result":true} ));
    } 
    

    服务组件

    1 回复  |  直到 7 年前
        1
  •  1
  •   DeborahK    7 年前

    在检索数据时,通常使用 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将结果映射为定义的键和值对。

    希望这有帮助。