Angular 4,将http响应observable转换为object observable

前端之家收集整理的这篇文章主要介绍了Angular 4,将http响应observable转换为object observable前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是可观察的概念的新手,需要一些转换帮助.
我有一个服务,它返回一个Observable< Response>从一个Http请求,但我需要转换它做一个Observable< PriceTag>在connect方法中的DataSource上使用它.
反正有没有这样做?

这是我服务的方法

getPriceTags(): Observable<Response> {

    // Set the request headers
    const headers = new Headers({ 'Content-Type': 'application/json' });

    // Returns the request observable
    return this.http.post(Constants.WEBSERVICE_ADDRESS + "/priceTag",null,{headers: headers});

}

这里是DataSource类,我需要将它作为Observable< PriceTag>返回:

export class PriceTagDataSource extends DataSource<PriceTag> {

    constructor (private priceTagService: PriceTagService) {
        super();
    }

    connect(): Observable<PriceTag> {

        // Here I retrieve the Observable<Response> from my service
        const respObs = this.priceTagService.getPriceTags();

        // Now I need to return a Observable<PriceTag> 

    }

    disconnect() {}

}

以下是我的请求回复的示例:

{
    // This object is used to check if the query on the server was sucessful
    "query": {
        "sucessful": true
    },// These are my PriceTags 
    "tags": [
        {
            "id": "1","name": "MAIN"
        },{
            "id": "2","name": "CARD"
        }
    ]
}
从角度4.3开始,这可以自动完成.

例:

export class SomeService {
    constructor(private http: HttpClient) {}  // <--- NOTE: HttpClient instead of Http

    getSome(): Observable<MyAwesomeObject> {
        return this.http.get<MyAwesomeObject>.get('myUrl');
    }
}

所以在你的情况下,这将是:

返回this.http.post< PriceTag>(Constants.WEBSERVICE_ADDRESS“/ priceTag”,{headers:headers});

再次,使用HttpClient而不是Http

原文链接:https://www.f2er.com/angularjs/141724.html

猜你在找的Angularjs相关文章