외부에서 빈 배열을 정의한 다음 ajax 요청을 하고, 요청 내부에 다른 요청을 중첩한 다음 마지막으로 이를 세 개의 개체로 연결하고 빈 배열을 삽입합니다.
그런 다음 가장 바깥쪽에 배열 길이를 인쇄했는데 인쇄된 길이가 0입니다. 이 문제는 할당에 영향을 미칩니다. 해결 방법을 알려주십시오.
欧阳克2017-06-30 09:55:44
이벤트 루프 문제를 확인해주세요
우리는 ajax가 비동기 작업이라는 것을 알고 있습니다.
현재 console.log의 위치는 실제로 [].length
입니다.현재 js가 실행된 후 ajax 성공 콜백이 실행됩니다. 성공 콜백이 성공한 후에만 arr 배열이 값으로 푸시됩니다.
따라서 두 번째 Ajax 성공 콜백에 console.log를 넣을 수 있습니다.
약속하자면 이 중첩 콜백은 매우 잘 최적화되지만 Ajax를 캡슐화해야 합니다
모든 Ajax를 Promise로 감싸는 것이 좋습니다
为情所困2017-06-30 09:55:44
ajax는 비동기식 데이터 획득 방법이므로 비동기식으로 획득한 데이터는 우리가 일반적으로 이해하는 동기식 방식으로 처리할 수 없습니다. 성공 콜백 함수에 console.log를 작성해야 합니다.