# Как обратиться к \`api.addPosterIcon\` изнутри функции

**URL:** <https://meta.discourse.org/t/how-to-refer-to-api-addpostericon-from-inside-of-a-function/202975>\
**Category:** Development\
**Created:** [08.Сентябрь.2021 15:20:12 UTC](https://meta.discourse.org/t/how-to-refer-to-api-addpostericon-from-inside-of-a-function/202975 "2021-09-08T15:20:12Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![Ilia](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ilia/32/227945_2.png) [@Ilia](https://meta.discourse.org/u/Ilia)\
**Post date:** [08.Сентябрь.2021 15:20:12 UTC](https://meta.discourse.org/t/how-to-refer-to-api-addpostericon-from-inside-of-a-function/202975/1 "2021-09-08T15:20:12Z")

</div>

Привет,

Подскажите, пожалуйста, как обратиться к **`api.addPosterIcon`** изнутри функции?

**Пример:**

```plaintext
<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).

---

_[View the full topic](https://meta.discourse.org/t/how-to-refer-to-api-addpostericon-from-inside-of-a-function/202975)._
