본문 바로가기

nodejs - 오픈소스

함께 사용 async/await

함께 사용 async/await

비동기 함수 내에서 하나의 await호출  컨텍스트 내에서 실행되는 경우 다음 패턴을 사용해야합니다.

 

이 예에서 스토어는 콜백 함수와에서 호출하는 함수에서만 사용할 수 있습니다 foo. 외부 run에서 호출 getStore하면 반환 undefined됩니다.

문제 해결

대부분의 경우 응용 프로그램 또는 라이브러리 코드에는 AsyncLocalStorage. 그러나 드물게 비동기 작업 중 하나에서 현재 저장소가 손실되는 상황에 직면 할 수 있습니다. 이러한 경우 다음 옵션을 고려하십시오.

코드가 콜백 기반 인 경우으로 util.promisify()약속 하는 것으로 충분 하므로 기본 약속으로 작업을 시작합니다.

콜백 기반 API를 계속 사용해야하거나 코드에서 사용자 정의 가능한 구현을 가정하는 경우 AsyncResource클래스를 사용 하여 비동기 작업을 올바른 실행 컨텍스트와 연결합니다.