나는 express로 node.js를 테스트하고있다.node.js를 사용할 때 for 루프 비동기 방식을 사용해야합니까?
이론적으로, 나는 어떤 콜백없이 "루프"에 뭔가 매우 무거운 계산을 실행하면
이 차단 등의 요청이 무시해야합니다.
하지만 내 경우
, 일반적인 "루프"for(var i=0;i<300000;i++) {
console.log(i);
}
는 요청 블록하지만, 단지 높은 CPU 부하를하지 않습니다.
다른 요청도 받아들입니다.
하지만 난 할 몇 가지 다른 방법을 사용해야하는 이유 이러한 비 차단 등
process.nextTick()
을 또는 (반면에) process.nextTick로 포장하여 기본 루프 기능을 돌볼 Node.js를 수행()을 기본값으로 사용 하시겠습니까?
"for 루프"에서 process.nextTick을 사용하는 것과 "for 루프"에서 process.nextTick을 사용하지 않는 것의 차이점 – InspiredJW
스 니펫을 사용하면 더 나은 대답을 얻을 수 있지만 기본적으로 nextTick을 사용하지 않으면 루프가 다른 언어와 같이 실행됩니다. 'i'의 모든 값을 통과 할 때까지 실행되고 다른 처리는 일어나지 않습니다. nextTick은 다음 번에 이벤트 루프를 통해 인수 함수를 실행하도록 노드에 지시합니다. 이론적으로 이는 이벤트 루프에서 처리 할 수 있도록 다른 모든 작업과 함께 대기중인 것을 의미합니다. 즉, 들어오는 요청과 같이 다른 데이터가 처리 될 때가 있습니다. 즉, 메인 루프는 여전히 나쁠 수있는 무거운 프로세싱을 많이 할 것입니다. – loganfsmyth