2017-04-22 7 views
0

nativescript/angular 튜토리얼을 수행하고 있으며 이해할 수없는 코드에서 뭔가를 발견했습니다 해명을 원한다."결과"는 nativescript/angular의 http.get 요청에서 얻은 Observable의 .map 연산자에서 무엇을 의미합니까

import { Injectable } from "@angular/core"; 
import { Http, Headers } from "@angular/http"; 
import { Observable } from "rxjs/Rx"; 
import "rxjs/add/operator/map"; 

import { Config } from "../config"; 
import { Grocery } from "./grocery"; 

@Injectable() 
export class GroceryListService { 
    constructor(private http: Http) {} 

    load() { 
    let headers = new Headers(); 
    headers.append("Authorization", "Bearer " + Config.token); 

    return this.http.get(Config.apiUrl + "Groceries", { 
     headers: headers 
    }) 
    .map(res => res.json()) 
    .map(data => { 
     let groceryList = []; 
     data.Result.forEach((grocery) => { //<------HERE 
     groceryList.push(new Grocery(grocery.Id, grocery.Name)); 
     }); 
     return groceryList; 
    }) 
    .catch(this.handleErrors); 
    } 

    handleErrors(error: Response) { 
    console.log(JSON.stringify(error.json())); 
    return Observable.throw(error); 
    } 
} 
: 제 4 장 (Nativescript 모듈)에서

그들은 식료품 목록을 검색 할 http.get resquest을하고 그들이 관찰을 얻을 때 나는, 여기가 어떤지도 연산자 throught를 전달 통지 코드입니다 내 질문은

은 "결과"무엇 그들은 단순히 내가 잘 모르겠어요 때문에

data.forEach((grocery) => { 

내가 물어 두지 않는 이유는 두 번째 .MAP

의미 .map (res => res.json) 또는 다른 것으로부터 관찰 가능한 결과의 객체 속성입니다.

"결과"의 의미와 의미에 대한 문서를 가르쳐 주시겠습니까?

감사드립니다.

답변

2

우선이 줄 .map(res => res.json())은 응답 본문을 json 개체로 구문 분석합니다. 그런 다음 두 번째 mapdata 인수 아래에서이 json 객체에 액세스 할 수 있습니다. data으로 표시된 json 객체는 실제로이 보안 조언 HERE을 따르는 백엔드에서 반환 된 데이터에 매핑 된 키로 Result을 사용하여 실제 응답 결과 데이터를 둘러싼 래퍼입니다. 따라서 data.Result은 백엔드에서 반환 된 실제 데이터에 매핑 된 키일뿐입니다. 백엔드는 키에 대해 다른 이름을 사용할 수 있습니다 (예 : 비밀, 그러면 서버에서 반환 된 데이터를 얻기 위해 data.secret을 할 것입니다.

+0

많은 감사드립니다. –