AngularJS 학생의 경우 '어리석은'질문이지만 혼란 스럽습니다.쉬운 각도 : 왜 순서가 바뀌나요?
변수를 console.logging 할 때 var result
이 GET 등의 약속이고, .then()
변수가 asignin과 같은 일부 작업을 수행한다고 가정 해 봅니다.
var result = ... ;
$scope.number = {};
result.then(function(data) {
$scope.number = 5;
console.log($scope.number);
});
console.log($scope.number);
오케이! 그래서 나에게,이 두 번째 .LOG 비를 인쇄 할 수
5
5
이 경우에 (
5
undefined
(경우에 나는이 기능이나 약속 외부 달러 (A $) 범위 변수를 초기화)를 인쇄한다 ,
) 함수 외부 -defined 전역 변수 그래서 내가 얻을 :
undefined
5
inner (5) 변수 앞에 outter $scope.number
이 인쇄되는 이유는 무엇입니까?
약속 내에서 GET
을 얻은 후에 변수를 초기화하고 나중에 초기화 된 var를 사용하고 싶습니다.
감사합니다. =) 학습 속도가 빨라집니다! 그 후
var result = ... ;
오른쪽, 당신은 약속의 .then
방법에 함수를 전달합니다 :
result.then(...)
그리고 바로
좋아, 지금은 더 잘 이해합니다. 재귀 함수에 '비슷하게'보일 것입니다. 부모 함수는 자식 함수가 끝날 때까지 대기합니다. $ scope.number를 계속 사용하려면 HTTP.GET을 반환하는 숫자라고 가정 해 봅시다. 다른 함수와 연결해야합니까? 예를 들어, 당신이 그랬던 것처럼? asyncFunction1 '()을 (기능 (데이터) {$ scope.number = 데이터; 창 asyncFunction2의 ($ scope.number) }).. 다음 (함수() { CONSOLE.LOG ($ 범위. number); }); ' 다시 간단한 코드 인 1st initialises number와 second로 처리 할 수 있습니다. – ButterySAM777
$ scope를 처리하는 다른 방법.약속 안에서 변수는 나중에 연속적으로 처리 할 수 있습니까? 고맙습니다! – ButterySAM777
당신이하고있는 방식이 올바른 것처럼 보입니다. '.then'에 전달한 함수 안에 $ scope.number를 설정하고 있으므로 http 응답이 끝나기를 기다리고 있습니다. 처음 완료된 후에 두 번째 http 요청을해야하는 것처럼 첫 번째 함수에서 다른 약속을 반환하는 경우에만 두 번째 함수가 필요합니다. –