네 비동기 맞죠.
비동기가 아니라면 굳이 콜백을 받아서 처리할 필요가 없었을 겁니다.
서버 요청이 있기 때문에 콜백을 받아서 처리하는데
문제는 이 콜백이 언제 실행될지는 서버에서 어떤 요청을 먼저 처리해서 응답을 주느냐에 따라 달렸습니다.
배열의 순서가 매 번 달라지는건 당연하죠.
해결하기 위해서는 몇가지 방식이 있지만
저는 기존 비슷한 질문들에 대해서 아래와 같이 안내해 드렸습니다.
참고하세요.
https://devtalk.kakao.com/t/addresssearch/44163/4