Node.js는 이벤트 기반 비동기 서버측 JavaScript 실행 환경입니다. 가볍고 전력 효율적이며 확장 가능합니다. 하지만 Node.js의 비동기 실행 모델로 인해 동기 작업과 유사한 대기/지연 작업을 수동으로 구현해야 하는 경우가 있습니다. 절전 작업은 장기 실행 작업이나 일정 기간 후에 실행해야 하는 특정 작업을 시뮬레이션하는 데 자주 사용됩니다. 이 기사에서는 Node.js에서 절전 작업을 구현하는 방법을 소개합니다.
방법 1: setTimeout 함수 사용
setTimeout 메서드는 Node.js에 내장된 함수로, 지정된 밀리초 후에 콜백 함수를 트리거하는 데 사용할 수 있습니다. 이 기능을 사용하여 절전 작업을 시뮬레이션할 수 있습니다.
예는 다음과 같습니다.
function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } async function main() { console.log('start'); await sleep(2000); // 睡眠2秒 console.log('end'); } main();
위 코드에서는 Promise 객체를 반환하고 지정된 밀리초 후에 확인 메서드를 호출하는 비동기 함수 sleep을 정의합니다. main 함수는 sleep 함수를 호출하고 로그 한 줄을 출력하기 전에 2초 동안 기다립니다. async/await 구문을 통해 매우 편리하게 sleep 작업을 구현할 수 있습니다.
방법 2: 사용자 정의 Promise 개체 사용
잠자기 작업을 구현하기 위해 Promise 개체를 직접 구현할 수도 있습니다. 이 방법은 더 유연하며 필요에 따라 Promise 객체의 실행 방법을 사용자 정의할 수 있습니다.
예는 다음과 같습니다.
function sleep(ms) { return new Promise(resolve => { let startTime = new Date().getTime(); while (new Date().getTime() < startTime + ms); resolve(); }); } async function main() { console.log('start'); await sleep(2000); // 睡眠2秒 console.log('end'); } main();
이 예에서는 (시뮬레이션 타이밍을 위해) 지정된 밀리초 동안 루프를 실행하는 sleep 함수를 정의합니다. 루프가 끝나면 Resolve 메소드를 호출하여 Promise 실행을 종료합니다. main 함수는 sleep 함수를 호출하고 로그 한 줄을 출력하기 전에 2초 동안 기다립니다.
이 방법은 절전 작업을 구현하는 동안 CPU 리소스도 차지한다는 점에 유의해야 합니다. 프로덕션 환경에서는 사용하지 않는 것이 좋으며 장기 실행 작업을 시뮬레이션해야 하는 특수한 상황에서만 사용됩니다.
결론
어떤 방법을 사용하든 수면 작업 구현은 간단합니다. Node.js의 비동기 실행 모델은 높은 동시성 요청을 처리하는 데 적합하지만 대기/지연이 필요한 일부 작업을 구현하는 다양한 방법도 있습니다. 실제 요구에 따라 적절한 구현 방법을 선택해야 합니다.
위 내용은 nodejs 수면 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!