Javascript 从角度2的可观测数据中提取数据

Javascript 从角度2的可观测数据中提取数据,javascript,angular,Javascript,Angular,我在理解如何正确使用角度2中的可观测值时遇到了一些困难。我使用以下查询: let headers = new Headers({ 'Content-Type': 'application/json' }); let options = new RequestOptions({ headers: headers }); return this.http.get('http://localhost:3000/admin/is-admin.json', options) .map(res =>

我在理解如何正确使用角度2中的可观测值时遇到了一些困难。我使用以下查询:

let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.get('http://localhost:3000/admin/is-admin.json', options)
  .map(res => res)
  .catch(this.handleError);   }
API调用返回布尔值true或undefined,但不知何故,我无法从函数返回该值。现在它返回一个对象,我希望它直接返回布尔值。当我将地图线更改为:

  .map(res => JSON.parse(res))
如果我将JSON解析错误更改为:

  .map(res => res.data)

我得到一个错误,响应对象上不存在数据。有人知道我该怎么做吗?答案可能非常基本,但我已经寻找了很长一段时间了…

通过获取响应负载的文本值,我将使用以下方法:

let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.get('http://localhost:3000/admin/is-admin.json', options)
  .map(res => { // <-----
    let responsePayload = res.text();
    return (responsePayload != null) ? Boolean(res.text()) : responsePayload;
   }))
  .catch(this.handleError);

通过获取响应负载的文本值,我将使用以下内容:

let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.get('http://localhost:3000/admin/is-admin.json', options)
  .map(res => { // <-----
    let responsePayload = res.text();
    return (responsePayload != null) ? Boolean(res.text()) : responsePayload;
   }))
  .catch(this.handleError);

你需要订阅可观察的

getData() {
  let headers = new Headers({ 'Content-Type': 'application/json' });
  let options = new RequestOptions({ headers: headers });
  return this.http.get('http://localhost:3000/admin/is-admin.json', options)
    .map(res => res.json)
    .catch(this.handleError);   
}

otherFunc() {
  this.getData().subscribe(val => this.data = val);
}


{{data}json}
构造函数(){ this.data=getData();
}您需要订阅可观察的

getData() {
  let headers = new Headers({ 'Content-Type': 'application/json' });
  let options = new RequestOptions({ headers: headers });
  return this.http.get('http://localhost:3000/admin/is-admin.json', options)
    .map(res => res.json)
    .catch(this.handleError);   
}

otherFunc() {
  this.getData().subscribe(val => this.data = val);
}


{{data}json}
构造函数(){ this.data=getData(); }

试试
.map(res=>res.json())
试试
.map(res=>res.json())