함수 내부에서 `api.addPosterIcon`을 참조하는 방법

안녕하세요,

함수 내부에서 **api.addPosterIcon**을 참조하는 방법을 알려주실 수 있을까요?

예시:

<script type="text/discourse-plugin" version="0.8">
   api.onPageChange(url => {
       if (Discourse?.currentUser?.admin) {
           extract_associated_user_data();
       }
   });
   function extract_associated_user_data() {
       // 위에 많은 코드가 있고, 이제 `addPosterIcon` 함수를 호출할 준비가 되었습니다
       api.addPosterIcon(function(data, attrs) {
            return { icon: 'user', className: 'customer' };       
       });
   }
</script>

**api.addPosterIcon**을 최상위 레벨로 이동시키면 작동하지만, extract_associated_user_data 내부에서 실행할 때는 아무런 동작도 하지 않고 조용히 실패합니다(실행되지 않음). 아마도 내부적으로 this 컨텍스트가 꼬여있는 것 같지만, 어떻게 참조해야 하는지 확실하지 않습니다. 게시하기 전에 여러 가지를 시도해 보았습니다.

이 정보가 미래의 개발자 분들께도 도움이 되길 바랍니다.

저희는 최신 버전인 Discourse 2.8.0.beta6 (cba8b39607)을 사용 중입니다.

테마에서 text/discourse-plugin 스니펫의 구현 방식은 다음과 같은 것으로 보입니다:

여기서 this 인스턴스에 대한 언급을 직접적으로 찾지 못했는데, 이는 JS의 암시적 this와 관련이 없음을 의미합니다. 또한 스니펫이 해당 위치에 붙여넣기 되기 때문에 api가 스코프에서 벗어나는 문제도 아닙니다.

이 최소 예제가 실제로 작동하는지, 즉 생략된 코드에 문제가 없는지 확인해 주실 수 있을까요?

참고로: Discourse 전역 객체와 그 currentUser 필드는 여기에서 api.getCurrentUser()로 대체할 수도 있습니다:

좋아요, 감사합니다.

함수 내부에서 **api.getCurrentUser()**는 잘 작동하는데, **api.addPosterIcon**은 왜 아직 안 되는지 궁금합니다.

커스텀 코드 솔루션(이것도 전혀 문제가 되지 않지만)을 작성하기보다는 네이티브 API를 최대한 활용하고 싶습니다.