상세 컨텐츠

본문 제목

throttle() - lodash

JavaScript

by 폴리프레임 2024. 5. 27. 08:26

본문

반응형

throttle 함수는 주어진 시간 간격 동안 함수를 한 번만 실행하도록 제한합니다. 즉, 함수가 여러 번 호출되더라도 일정한 시간 간격 내에서는 한 번만 실행됩니다. throttle(callback, time)

//npm install lodash

import { throttle } from 'lodash'

const playAudio = throttle(()=> {
  const audio = new Audio("/alert-alarm.wav")
  audio.play();
},8000)

이렇게 하면 playAudio()가 setInverval()함수에 의해 1000ms 미만으로 불려도, alarm 사운드 길이에 관계없이  8초의 간격으로 alert-alarm.wav 를 실행함.

const playAudio = ()=> {
    const audio = new Audio("/alert-alarm.wav")
    audio.play();

  }
const throttleButton = throttle(playAudio,8000)

let intervalId;
const alarmStart = ()=>{
    intervalId = setInterval(throttleButton,4000)
    console.log("alarm started")
}
const alarmStop = ()=> {
    clearInterval(intervalId)
    console.log("alarm stopped")
}

document.getElementById('btn').addEventListener(
    'click', 
    alarmStart
    
);
document.getElementById('cansel').addEventListener(
    'click', 
    alarmStop
);

참고: Vanila JavaScript로 사용하는 경우 CDN 또는 npm init, npm install, npm install lodash 후에

<script src = "main.js"  type= "module"> </script>

로 사용 가능

'JavaScript' 카테고리의 다른 글

>> , ~~ 유용한 비트 연산자  (1) 2024.05.27
padStart() , padEnd() - 공백채우기  (0) 2024.05.27
emmet - react - reactjavascript  (0) 2024.05.26
.mjs, .cjs 확장자  (0) 2024.05.26
WebGL  (1) 2024.05.26

관련글 더보기