Javascript 从进行http调用的方法返回承诺的正确方法(Angular2)

Javascript 从进行http调用的方法返回承诺的正确方法(Angular2),javascript,angular,rxjs,Javascript,Angular,Rxjs,我希望使http调用返回angular2中的承诺的方法 到目前为止,我已经 decisionOnRequestToJoinGroup(payload) { return new Promise((resolve, reject) => { this.http.post(url, JSON.stringify(payload), {'headers': contentHeader}) .map(res => res.json()) .toPromise(

我希望使http调用返回angular2中的承诺的方法

到目前为止,我已经

decisionOnRequestToJoinGroup(payload) {

  return new Promise((resolve, reject) => {

    this.http.post(url, JSON.stringify(payload), {'headers': contentHeader})
    .map(res => res.json())
    .toPromise()
    .then(response => resolve(response))
    .catch(err =>  reject(err));

  });

  }

这是正确的方法吗?

您可以这样做:

decisionOnRequestToJoinGroup(payload) {    
  return this.http.post(url, JSON.stringify(payload), {'headers': contentHeader})
    .map(res => res.json())
    .toPromise();
}
this.decisionOnRequestToJoinGroup(payload)
   .then((response)=>{
        console.log(response);
   ;})
然后,您可以这样解决它:

decisionOnRequestToJoinGroup(payload) {    
  return this.http.post(url, JSON.stringify(payload), {'headers': contentHeader})
    .map(res => res.json())
    .toPromise();
}
this.decisionOnRequestToJoinGroup(payload)
   .then((response)=>{
        console.log(response);
   ;})
为什么不直接返回这个.http.post…map…toPromise?或者从.map返回可观察的?