특정 시간 후에 자바스크립트 코드 실행시키는 법과 관련된 질문


(wello_horld) #1

자바스크립트로 프로그래밍 작성하다가 어떻게 처리해야 할지 모르겠는 상황이 생겼습니다.
사실 자바스크립트를 거의 할 줄 모르는 상황에서 프로그래밍을 하다 보니 뭐가 뭔지 모르겠네요.

변수 a가 있는데, 처음 값은 0입니다. 이 변수는 특정 키, 예를 들면 a키를 누르는 순간 그 값이 1로 바뀝니다. 그리고 어느 정도의 시간, 예를 들어 0.1초 정도가 지나면 그 값이 2로 바뀝니다. 그런데 중간에 손을 떼면 그 값이 즉시 0으로 바뀌게 하고 싶습니다. 물론 값이 2로 바뀌지는 않고요.

처리하려고 여러 가지 방법을 썼지만 해결이 안 됩니다. 어떻게 하면 처리할 수 있을까요?


(프로책팔이) #2

https://www.elated.com/articles/javascript-timers-with-settimeout-and-setinterval/

이걸로는 안 됩니까?


(아둔) #3
var a = 0;
var f = undefined;

document.addEventListener('keydown', function(event) {
  if (event.code == 'a') {
    a = 1;
    f = setTimeout(function(){ a = 2; }, 100);
  }
});

document.addEventListener('keyup', function(event) {
  if (event.code == 'a') {
    if(f) clearTimeout(f);
    f = undefined;
    a = 0;
  }
});

생각나는대로 작성해봤습니다.
event.code가 맞는지 기억이 가물하네요.


(wello_horld) #4

두 분 다 감사합니다. 문법을 잘못 알고 있었네요.