if 문에서 범위 변수를 변경하고 if 문 외부에서 정의되지 않은 변수로 변경되었습니다.
app.controller("Login", function($scope, $window,$http){
var status;
$scope.loginUser = function(logData){
$http.post('/corporate/login',logData).then(function(response){
var data = response.data
var status = data.success;
if(status == true){
$scope.logStatus = true;
console.log($scope.logStatus); // prints true
}else{
$scope.logStatus = false;
}
})
console.log($scope.logStatus); //prints undefined
}
});
외부 ... 정의되지 않은 변수로 변했습니다.
undefined
값 으로 "변환"되지 않았습니다 . console.log
코드 의 마지막 은 성공 핸들러의 console.log 전에 실행 됩니다. 그것은이다 undefined
그것은 아직 성공 핸들러가 설정되지 않았기 때문에.
console.log("Part1");
console.log("Part2");
var promise = $http.get(url);
promise.then(function successHandler(response){
console.log("Part3");
});
console.log("Part4");
"Part4"에 대한 콘솔 로그는 데이터가 서버에서 돌아올 때까지 기다릴 필요가 없습니다. XHR이 시작된 직후에 실행 됩니다 . "Part3"에 대한 콘솔 로그는 $ q 서비스 가 보유 하고 서버에서 데이터가 도착하고 XHR이 완료된 후 호출 되는 성공 핸들러 함수 내부에 있습니다.
자세한 내용은 성공 처리기 외부에서 $ http promise 응답을 사용하는 방법을 참조하세요 .
console.log("Part 1");
console.log("Part 2");
var promise = new Promise(r=>r());
promise.then(function() {
console.log("Part 3");
});
console.log("Part *4*");
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다