2016-08-02 4 views
5

제 코드에 약간의 문제가있어서 제게 혼란 스럽습니다. 왜 누군가가 그것이하는 일을하는지 설명 할 수 있기를 바랍니다.ES6 괄호가있는 화살표 기능

코드 1

sendText(){ 
    return this.http.get('/api') 
     .map((response:Response) => response.json()); 
} 

코드 2

sendText(){ 
    return this.http.get('/api').map((response:Response) => { 
     response.json(); 
    }); 
} 

두 코드 간의 주요 차이점은 코드 2 제가 추가 화살표 함수 뒤에 괄호를 배치한다는 것이다 그 괄호 안의 내 작업과 코드 1 나는 대괄호를 꺼내서 한 줄에 작업을 배치하십시오.

내 질문은 왜합니까 나는 의심 개체를 반환코드 1 동안 제공 angular2 구독 방법 CODE2다시 정의되지 않은오고 서버 측면에서 오는 내 객체입니다.

+4

'단지 고전적인 기능처럼 return'. – georg

+2

대괄호가없는 경우 : 표현식. 대괄호로 : 코드 블록. –

답변

10
(response:Response) => response.json() 

이 이것에 대한 속기입니다 :

{}
(response:Response) => { return response.json(); } 

은 블록 내부에 여러 문을 추가 할 수 있습니다. 그것들이 없으면 함수는 단지 하나의 명령문을 실행하고 그 값을 반환합니다.

문서 도구 : 당신이 사용해야하는 중괄호 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions

+0

당신을 진심으로 환영합니다. 또한 나에게 뭔가를 정리 해줄 수 있니? 왜 당신은'응답'대신'응답 : 응답'을 가지고 있습니까? 그것은 유형 힌트 또는 무언가인가? –

+0

자습서에서 말한 것에서 으음. 응답 형식 인 것을 보장하는 타이프 스크립트 구문입니다. 그래서 미래의 오류는 피할 수 있습니다. 당연한데 내 말을 듣지 마라. 나는 아직도 배우고있다. 불필요한가요? –

+0

Typescript에서 필요할 수도 있습니다. 모르겠지만 사용하지 않았습니다. JavaScript에서는 구문 오류입니다. –