본문 바로가기

nodejs - 오픈소스

before(asyncId)

before(asyncId)

  • asyncId <숫자>

비동기 작업이 시작되거나 (예 : 새 연결을 수신하는 TCP 서버) 완료되면 (예 : 디스크에 데이터 쓰기) 사용자에게 알리기 위해 콜백이 호출됩니다. before콜백 직전이라고 콜백이 실행되는 것을 특징으로한다. asyncId콜백을 실행하려고하는 리소스에 할당 된 고유 식별자입니다.

before콜백은 0 N 회 호출됩니다. before에는 연결이 TCP 서버가 수신되지 않은 경우 콜백은 일반적으로, 예를 들어, 비동기 작업이 취소 된 경우 0 번이라고 나됩니다. TCP 서버와 같은 영구 비동기 리소스는 일반적으로 before 콜백을 여러 번 호출하는 반면 다른 작업  콜백을 fs.open()한 번만 호출합니다.

after(asyncId)

  • asyncId <숫자>

에 지정된 콜백 before이 완료된 직후에 호출 됩니다.

캐치되지 않는 예외가 콜백의 실행 중에 발생하는 경우, after 실행 후'uncaughtException' 이벤트가 방출 또는됩니다 domain의 핸들러가 실행됩니다.

destroy(asyncId)

  • asyncId <숫자>

에 해당하는 리소스 asyncId가 소멸 된 후 호출 됩니다. 임 베더 API에서 비동기 적으로 호출되기도합니다 emitDestroy().

참조가 이루어집니다 그래서 만약 어떤 자원 정리에 대한 가비지 컬렉션에 의존 resource에 전달 된 객체 init가 가능한 destroy 응용 프로그램의 메모리 누수의 원인이 호출되지 않습니다. 리소스가 가비지 컬렉션에 의존하지 않는 경우 이것은 문제가되지 않습니다.

promiseResolve(asyncId)

추가 : v8.6.0

  • asyncId <숫자>

생성자에 resolve전달  함수가 호출 될 때 Promise호출됩니다 (직접 또는 약속을 해결하는 다른 수단을 통해).

resolve() 관찰 가능한 동기 작업을 수행하지 않습니다.

 Promise이 경우 반드시이 시점에서 성취되거나 거부되지 않은 Promise다른 사람의 상태를 가정하여 해결되었습니다 Promise.

 

async_hooks.executionAsyncResource()

추가 : v13.9.0, v12.17.0

  • 반환 값 : <Object> 현재 실행을 나타내는 리소스입니다. 리소스 내에 데이터를 저장하는 데 유용합니다.

에서 반환하는 리소스 개체 executionAsyncResource()는 대부분 문서화되지 않은 API가있는 내부 Node.js 핸들 개체입니다. 객체에서 함수 나 속성을 사용하면 응용 프로그램이 중단 될 수 있으므로 피해야합니다.

사용 executionAsyncResource()사용에는 핸들이나 요청 객체가 없기 때문에 빈 개체를 반환합니다 최상위 실행 컨텍스트에 있지만, 최상위 수준을 나타내는 객체를 가지는 것이 도움이 될 수 있습니다.

 

async_hooks.executionAsyncId()

역사

버전변화

v8.2.0

에서 이름이 변경되었습니다 currentId.

v8.1.0

추가 : v8.1.0

  • 반환 값 : <번호>asyncId 현재 실행 컨텍스트의. 전화가 왔을 때 추적하는 데 유용합니다.

Promise 컨텍스트는 triggerAsyncId기본적으로 유효한을 얻지 못할 수 있습니다 . 약속 실행 추적 에 대한 섹션을 참조하십시오 .

약속 실행 추적

기본적으로 Promise 실행은 V8에서 제공 asyncId하는 Promise Introspection API 의 비교적 비용이 많이 드는 특성으로 인해 할당되지 않습니다 . 즉, promise 또는 async/ await를 사용하는 프로그램 은 기본적으로 promise 콜백 컨텍스트에 대한 올바른 실행 및 트리거 ID를 얻지 못합니다.