2015-11-11 22 views
8

Góc 2 - Làm cách nào để viết một lời hứa Http?Góc 2 - Làm thế nào để viết một lời hứa trong tiêu đề của tôi

Tôi đang nhập http và muốn đặt tiêu đề http bằng mã thông báo xác thực của mình. Sau đó, tôi muốn viết một http get và đưa phản hồi vào một lời hứa để trở về phương thức gọi nó.

Cho đến nay tôi có điều này:

import {Http, Headers} from "angular2/http"; 
import {EnvironmentService} from './environmentService'; 

export class AuthService { 
    private environmentService: EnvironmentService; 
    private http: Http; 
    private header: Headers; 

    contructor(_environmentService: EnvironmentService, _http: Http, _header: Headers){ 
     this.environmentService = _environmentService; 
     this.http = _http; 

     this.header.append('Authorization', '1234'); 
     this.header.append('Content-Type', 'application/json');  
    } 

    getSpotifyData =():Promise<Object> => { 
     return this.http 
      .get('http://ws.spotify.com/search/1/track.json?q=foo',    {headers:this.header}) 
      .map((response) => { 
      return response.json() 
      }) 
      .toPromise(); 
    } 

} 

Cảm ơn trước!

+2

Hiển thị mã để hiểu rõ hơn –

+0

Mã vừa được thêm ở trên – AngularM

Trả lời

11

Bạn có thể vượt qua headers vào đối số thứ hai của http.get phương pháp và bạn có thể sử dụng .toPromise phương pháp để chuyển đổi một Observable thành một Promise.

export class AuthService { 
    // ... 

    testApiCall(): any { 
    return this.http 
     .get('http://localhost:3333/api/', { 
     headers: { 
      'Authorization': 'BearerTokenGoesHear' 
     } 
     }) 
     .map((response) => { 
     // some response manipulation 
     return response.json() 
     }) 
     .toPromise(); 
    } 
} 

Hãy xem this example.

+0

Xin chào, tôi đã thực hiện những gì bạn đã nói và tôi nhận được lỗi trình biên dịch kịch bản kiểu. Tôi đã cập nhật mã của mình ở trên cùng để cho bạn biết vị trí hiện tại của tôi. Cảm ơn bạn – AngularM

+0

Tôi không biết bạn có lỗi gì. Cố gắng thay đổi kiểu trả về 'testApiCall' thành' any'. Có lẽ nó sẽ giúp. – alexpods

Các vấn đề liên quan