카테고리 없음

process.nextTick

석구석구 2022. 1. 13. 21:59
setTimeout(()=>{console.log('nexttick')},0)

가끔 이후 이벤트 루프 실행 타임으로, 콜백 실행 시점을 미루기 위해, 위와 같은 코드를 작성하곤 한다.

 

노드에서는 공식적으로 다음번 틱(이벤트 루프가 실행되는 각 시점)으로 실행을 미룰 수 있는 기능을 제공한다.

process.nextTick(callback)

해당 기능은 문법에서만 차이가 있는게 아니라, 첫번째 방법보다 더욱 강력하다. setTimeout은 자바스크립트 런타임을 사용하는 반면, 아래 기능은 Node의 이벤트 루프를 대상으로 한다. 그렇기 때문에 자바스크립트의 큐에서 콜백이 활성화 되는 시점보다 빠르다.

 

지금 처리하는 일보다 더 급한일이 있는 경우, 사용하면 용이하다.

router('/logout', (ctx)=>{
    process.nextTick(()=>{removeTempFile(ctx.id)})
    return 200
})