Angular2 http의 클릭 이벤트에서 첫 번째 클릭은 정의되지 않고 두 번째 클릭 후에만 값을 얻을 수 있습니다. 그 이유는 무엇이며, 클릭할 때마다 다른 값이 표시됩니까?
예를 들어 아래 코드에서는 okLogin()에서 이름과 비밀번호를 얻었습니다. 반환된 데이터를 this.result에 할당한 다음 클릭 이벤트가 발생한 후 isLogin()을 실행하면 isLogin이 okLogin을 실행합니다. . 하지만 처음 클릭했을 때는 결과가 정의되지 않았으며, 두 번째 클릭했을 때는 결과를 얻을 수 있었지만 결과 값이 변경되면 첫 번째 클릭에서는 여전히 이전 값이 인쇄되었습니다. 현재 얻은 값은 그렇지 않았습니다. 어떻게 해결하나요?
으아악인쇄 효과:
정의되지 않음
{데이터의 데이터}
이전에 결과 값을 초기화했는데 나중에 들어오는 사용자 이름과 비밀번호가 변경되면 http.get 데이터가 변경되었지만 결과는 여전히 이전 값이었고 올바르게 표시하려면 두 번째 클릭이 필요했습니다.
저도 이전에 count 를 할 때 이런 문제가 발생했는데 자동 추가가 0부터 바로 시작해서 0을 보기 싫고 그냥 1부터 시작했으면 해서 기본값을 설정했습니다. 개수는 1입니다
黄舟2017-05-15 17:15:55
okLogin() 메소드가 잘못 작성되었습니다. subscribe
비동기적 동작이 있습니다. 따라서 okLogin이 호출되면 this.result에 값이 할당되지 않은 것으로 나타나며 isLogin은 계속 실행됩니다.
수정 계획:
(1)약속방식
(2)구독 작성방식 수정