@Vladimir185

Зачем тут коллбэк?

Всем привет! Есть такой код, выводит уведомление по какому-то действию, потом его скрывает и очищает timeout. В целом всё ясно, но есть 2 вопроса

<template>
  <div class="notification" v-if="notificationMessage">
    {{ notificationMessage }}
  </div>
</template>

<script>
const delay = (fn, n) => {
  const id = setTimeout(() => fn(), n);
  return () => clearTimeout(id);
};
export default {
  data() {
    return {
      notificationDispose: null,
      notificationMessage: null,
    };
  },
  methods: {
    showNotification() {
      this.notificationMessage = "Скопировано в буфер";
      this.notificationDispose && this.notificationDispose();
      this.notificationDispose = delay(() => (this.notificationMessage = null), 2000);
    },
  },
};
</script>


1) Зачем в функции delay возвращается коллбэк, а не просто clearTimeout?
2) Как понять запись
this.notificationDispose && this.notificationDispose();

В целом понятно, но глубоко нет

P.S. где можно почитать подробнее об этом?
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы