2016-06-15 34 views
0

我試圖做出一個獲取請求,但不知何故我無法記錄來自後端的承諾。任何想法我做錯了什麼?無法解決承諾

makeLoginCall(_username: string, _password: string) { 
    let promise = new Promise((resolve, reject) => { 
     this.http.get('xxx').subscribe(data => {  
     }); 
    }); 
    return promise; 
    } 

    login() { 
    this.userService.makeLoginCall(this.formLogin.value.username, this.formLogin.value.password) 
    .then(response => { 
     console.log(response); 
    }, 
    (response) => { 
     if (response.status < 500) { 
     console.warn('Login failed!'); 
     } else { 
     console.error('Internal Server Error'); 
     } 
    }); 
    } 
+2

犯錯,你永遠不會調用既不決心(),也沒有拒絕()。 –

回答

3

您需要解決Promise當您收到的響應,使得下面的.then功能將得到儘快就得到解決調用。

代碼

makeLoginCall(_username: string, _password: string) { 
    let promise = new Promise((resolve, reject) => { 
     this.http.get('xxx').subscribe(data => { 
      resolve(data); //resolve promise here 
     }); 
    }); 
    return promise; 
}