Angular2:Observable上的订阅不会分配响应值

时间:2017-01-19 20:09:20

标签: angular observable angular-services

我试图通过自定义查询查询我的后端,从我的数据库中的表中找到ID。但是,当我向GET Method发送subscribing我的服务Observable时,won't assignproperty响应(只是一个数字)发送给{{1}服务类。 这是我的代码:

    rentedCarId:string;


  getId(id:number): void {
    let url = this.baseUrl+"/search/findRentedCar?customer="+sessionStorage.getItem("customerID")+"&car="+id;

    console.log("Input id: " + id);

    let headers = new Headers();
    headers.set('Accept', 'application/json');

    this
      .http
      .get(url, {headers})
      .map(resp => resp.text())
      .subscribe(
        (id) => {
            console.log(id); //This will print out the number!
            this.rentedCarId = id; //This won't work! => undefined
        },
        (err) => {
      console.error('Error while searching for rentedCar ID!', err);
    });

    }




  deleteRentedCarEntry(id:number){
      this.getId(id);
      console.log("ID of Row in RentedCars table (response): " + this.rentedCarId); //will be undefined!
  }

方法deleteRentedCarEntry()从我的其他组件执行。 如果我在应用程序开始时执行它,log中的deleteRentedCarEntry()将返回undefined rentedCarId属性的console.log! 然而,subscribe方法中的id会记录正确的值,即使是第一次!为什么它不会在第一次之后从响应中分配{{1}}值,而只是在第二次时分配?{/ p>

1 个答案:

答案 0 :(得分:2)

使用do来设置rentedCarId。

File f = new File(UUID.randomUUID());
jarFile.renameTo(f);