2016-12-29 4 views
1

각도 2를 처음 사용하고 http 호출 결과를 캡처하는 데 문제가 있습니다. 호출은 간단하고 성공/실패 및 메시지가있는 json 만 리턴합니다. 이러한 호출에 대한 약속을 사용하기 시작했으며 결과를 브라우저에 표시 할 수 있지만 결과를 기록하거나 경고 할 수는 없습니다. 더 많은 정보가 필요하면 알려주세요.각도 2의 http 호출 결과

서비스 :

deleteTsUser(params){ 
    var url = this.userDeleteUrl + '?' + params.toString(); 

    return this.http.get(url) 
     .toPromise() 
     .then(this.extractData) 
     .catch(this.handleError); 
} 

구성 요소 :

var result = this._tsUserService.deleteTsUser(params) 
    .then(
    r => { 
     this.result.result = r.result, 
     this.result.messages = r.messages 
    } 
    ); 

console.log('RES: ' + this.result.result) 

템플릿 : 제대로 템플릿

{{ result.result }} :: {{ result.messages }} 

결과 표시하지만 CONSOLE.LOG 메시지가 그냥 "해상도 :"기록합니다. .. 왜이게 효과가 없습니까? 나는 정말 기본적인 것을 놓치고있어, 그렇지? Thx in adv.

+0

가능한 중복 http://stackoverflow.com/questions/14220321에/-n-do-return-from-an-asynchronous-call) –

답변

2

때문에 :

var result = this._tsUserService.deleteTsUser(params) 
    .then(
    r => { 
     this.result.result = r.result, 
     this.result.messages = r.messages 
    } 
    ); 

가 비동기 동작이다. deleteTsUser 메서드가 완료되면 결과가 then 콜백 내부에서 준비됩니다.

var result = this._tsUserService.deleteTsUser(params) 
    .then(
    r => { 
     this.result.result = r.result; 
     this.result.messages = r.messages; 
     console.log('RES: ' + this.result.result); 
    } 
    ); 

는 결과를 기록합니다.

내가 읽어보실 것을 권 해드립니다 : How do I return the response from an asynchronous call?을 자바 스크립트의 비동기 동작

[I 비동기 호출의 응답을 반환합니까?] (의
+0

그건 완전히 의미가 있습니다. 코드를 조정했고 설명대로 작동합니다. 빠른 응답에 감사드립니다! –

+0

@MichaelMittelman 기꺼이 도와 드리겠습니다! – echonax