V3 스크립트 및 라이브러리를 동적으로 로드하기

$.getScript("//dapi.kakao.com/v2/maps/sdk.js?autoload=false&appkey=키&libraries=services", function () {

	// autoload=false 로하여 로드후 콜백 
	kakao.maps.load(function () {
... 중략
    //객체 생성 에러
	   var ps = new kakao.maps.services.Places();
...
		});
	});

스크립트 로드 후 콜백을 통하여 호출하는데,
new kakao.maps.Map() 지도객체는 정상적으로 생성이 되는 반면에
place 라이브러리의 장소 객체는 정상적으로 생성되지 않습니다.
일단 의심되는것은 kakao.maps.load가 라이브러리를 제외한 v3스크립트만 로드되어도 바로 콜백을 실행하는것 같습니다.
라이브러리까지 모두 로드된 후에 콜백을 실행할 수 있는 다른 방법 (혹은 메서드?)가 있나요?

autoload=false 인 경우에 라이브러리 로딩 또한 동적으로 로딩되됩니다.
메인이 되는 지도 SDK의 스크립트와 url에 넣은 라이브러리 명에 대응되는 각각의 스크립트들이 엘리먼트에 순차적으로 append 되는 형태로 로딩되며,
이 모든 스크립트의 로딩이 끝나야만 kakao.maps.load 으로 등록한 콜백을 수행하고 마칩니다.

아래는 동적 로딩을 사용한 지도 예제입니다.
https://codesandbox.io/s/modest-payne-f5lc7?file=/src/index.js
예제의 콘솔을 보시면 정상적으로 15개의 결과를 가져왔다는 것을 알 수 있습니다.

작성하신 글에 첨부해주신 코드를 보면 큰 문제는 없어보입니다.
그렇기 때문에 지금 겪고 계신 문제 상황이 정확하게 어떤 조건에서 발생하는지 잘 모르겠습니다.

어떤 환경에서 사용하고 계신지(브라우저, 프레임워크, 라이브러리 등등)
자세히 알려주시면 좋을 것 같습니다.

혹시라도 전체적인 코드 첨부나 확인 가능한 페이지의 URL을 공유해 주신다면
직접 확인해 보도록 하겠습니다.

1개의 좋아요

확인 감사드립니다.
프레임워크 : .NET Core 3.1 Blazor
동적으로 스크립트를 바인딩하는 과정에서 전역변수에 정상적으로 접근이 되지않아서,
우회하려고 함수로 감싸다가 제가 혼동한것 같습니다.