Angular2 Service2
- Promise 서비스
promise 는 비동기 코드를 사용할 때 Call Back Hell 과 같은 비정상적인 호출 형태를 개선하기 이해 나온 방법이다.
===> user.ts
===> mock-user.ts
===> mock.service.ts
Promise.resolve() 를 통하여 “요청을 승낙합니다” 를 리턴하고
Promise.reject() 를 통하여 “요청을 거부합니다” 를 리턴한다.
getUser() 는 mock-user.ts 의 USERS 객체를 리턴한다.
getUserDelay() 를 통하여 1초 후 getUser() 를 호출한다.
===> promise.component.ts
생성자 부분에서 mock.service 를 선언하고 해당 서비스를 사용하여 값을 받아와
자식 컴포넌트 list-component 로 title 과 list 값을 전달한다.
===> list.component.ts / 부모로 부터 받은 title 과 list 를 출력한다.
- Shared 서비스
서비스는 컴포넌트 간 상호작용을 위한 매개자로 두 컴포넌트 간에 데이터를 교환하는 중간 매개자로 이용될 수 있다. @Input 이나 EventEmitter 를 사용하지 않고 데이터를 교환하려면 부모 / 자식 컴포넌트 관계를 가져야 한다.
- 부모 컴포넌트에 제공자 설정을 통해 주입을 한다.
- 자식 컴포넌트에서는 제공자 설정을 하지 않고 곧바로 서비스를 받아서 사용한다.
===> shared.service.ts / 공유 서비스 정의
===> car.component.ts / 자식 컴포넌트
===> taxi.component.ts / 자식 컴포넌트
===> parent.component.ts / 부모 컴포넌트
두개의 자식 컴포넌트의 생성자에서 SharedService 를 선언하여 s.message 를 불러오고
부모 컴포넌트 생성자에서 SharedService 를 선언하여 처음 s.message 를 hello 로 선언함
이후 자식에서 버튼 클릭시 s.message 가 각각 car / taxi 로 바뀌어 s.message 를 사용하는
parent / car / taxi 컴포넌트에서 해당 값이 실시간으로 바뀐다.
공유 서비스를 통해 공유 값이 바뀐다