Всем привет! Есть такой код, выводит уведомление по какому-то действию, потом его скрывает и очищает 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. где можно почитать подробнее об этом?