2016-06-02 1 views
2

내 컨트롤러 내부에이 기능이 그들의 성공 방법의 결과.컨트롤러 방법은

나는이 같은 컨트롤러 함수를 호출 :

setInterval(getNewNotifications, 5000); 

즉이 새 알림 5 초마다 얻는다!

컨트롤러 메서드가 호출 처음 브라우저 로그는 다음과 같습니다 예상대로

in service: Object 
in controller: Object 

! 그러나 그 다음에 순서가 뒤 바뀝니다.

in controller: Object 
in service: Object 

이것은 이상하고 다른 문제로 이어집니다.

왜 이런 일이 발생하며 어떻게 방지 할 수 있습니까?

+1

'deferer'는 어디에서 생성 되었습니까? 'getNotifications'가 호출 될 때마다 다시 만들어야합니다. 그러나'http.get'가 이미 약속을 되 돌린다면, 직접 약속을 직접 만들지 않아도됩니다. – tasseKATT

+0

@ tasseKATT 정확하게! 나는 문제가 없다고 생각하는 서비스 내에서 전 세계적으로 'deferer'를 만들었습니다! 대답으로 써 주시면 받아 들일 것입니다! 대단히 감사합니다 –

+0

할 것입니다. 천만에요 :) – tasseKATT

답변

2

약속이 getNotifications 함수 외부에서 작성된 경우 함수가 두 번째 호출 될 때 이미 해결되고 첫 번째 호출의 데이터가 다시 반환됩니다.

getNotifications이 호출 될 때마다 새로운 약속을 다시 작성하기 만하면됩니다.

관련 문제