на клике записываете куда нибудь, хоть в саму кнопку, что анимация стартовала. При повторном клике проверяете свою запись и возвращаетесь если активна. По завершению анимации удаляете запись. Ну или, что логичнее, отключаете кнопку на время рендеринга анимации
function myAwesomeAnimation(){
return new Promise( function(resolve, reject){
// some code
resolve(); //animation rendering complete
})
}
document.querySelector('#myAwesomeAnimationStartButton')
.addEventListener('click', function({ target }){
if (target.dataset.animationRendering) return;
target.dataset.animationRendering = target.disabled = true;
myAwesomeAnimation().then( _ => target.dataset.animationRendering = target.disabled = false );
})