setTimeout 함수 호출 지연 문제
HTML 값 업데이트에 대해 5초 폴링 메커니즘을 구현하려고 할 때 사용자에게 예기치 않은 동작이 발생할 수 있음 여기서 setTimeout() 함수는 의도한 지연 이후가 아닌 즉시 호출됩니다. 이렇게 하면 원하는 시차를 둔 서버 요청을 방지할 수 있습니다.
원인:
이 문제는 setTimeout() 함수가 호출되는 잘못된 방식에서 발생합니다.
원본 코드:
setTimeout(GetUsersNumber(), 50000);
설명:
JavaScript에서는 함수를 괄호 없이 객체로 정의할 수 있습니다. 그러나 함수를 호출하려면 함수 뒤에 괄호가 와야 합니다. 원래 코드에서는 GetUsersNumber() 함수가 함수 참조로 전달되지 않고 setTimeout() 내에서 즉시 호출됩니다.
해결책:
To 문제를 해결하려면 setTimeout()에서 함수 이름 뒤의 괄호를 제거하기만 하면 됩니다. 인수:
setTimeout(GetUsersNumber, 5000); // 5 seconds instead of 50
이렇게 하면 setTimeout()이 GetUsersNumber 함수 개체 자체에 대한 참조를 캡처하여 지연이 완료되면 함수를 호출할 수 있습니다.
위 내용은 'setTimeout' 함수가 지연 후가 아닌 즉시 실행되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!