이는 브라우저와 NodeJS 모두에서 작동하는 Azure SDK JavaScript 클라이언트 라이브러리에서 장기 실행 작업의 기본 구현입니다. 이 라이브러리는 주로 TypeSpec@azure-tools/typespec-ts 이미터가 생성하는 코드에서 사용하도록 설계되었습니다.
@azure/core-lro
장기 실행 작업에 대한 Azure SDK 디자인 지침을 따릅니다.
키 링크:
- 소스 코드
- 패키지(npm)
- API 참조 설명서
- 견본
시작하기
현재 지원되는 환경
- Node.js의 LTS 버전
- Safari, Chrome, Edge 및 Firefox의 최신 버전입니다.
설치
이 패키지는 주로 생성된 코드에서 사용되며 최종 사용자가 직접 사용하지 않습니다.
주요 개념
PollerLike
폴러는 터미널 상태에 도달할 때까지 서버의 장기 실행 작업을 해당 상태로 폴링할 수 있는 개체입니다. 또한 확장도 가능 Promise<TResult>해서 최종 결과를 얻기 위해 직접 사용할 await 수 있습니다. 다음 기능을 제공합니다.
-
operationState: 연산의 현재 상태를 반환하는 속성으로, 를 확장OperationState하는 타입으로 타입 설문조사가 아직 제출되지 않았다면 그렇습니다undefined. -
result: 연산이 완료undefined되었을 때 결과를 반환하는 속성 -
isDone: 연산이 종단 상태에 있는지 여부를 반환하는 속성 -
onProgress: 폴링 응답을 받을 때마다 호출할 콜백 함수를 등록합니다. -
poll: 단일 폴링 요청을 보냅니다. -
pollUntilDone: 작업 결과로 해결할 프라미스를 반환합니다. -
serialize는 폴러 상태의 직렬화된 표현으로 해결되는 약속을 반환합니다 -
submitted: 는 폴러가 성공적으로 제출되었을 때 해결되는 약속을 반환합니다
OperationState
작업 상태에 대한 형식입니다. 여기에는 다음과 같은 가능한 값이 있는 필드가 statusnotStartedrunningsucceeded포함 failed 됩니다. canceled 다음과 같이 액세스할 수 있습니다.
switch (poller.operationState?.status) {
case "succeeded": // return poller.result;
case "failed": // throw poller.operationState?.error;
case "canceled": // throw new Error("Operation was canceled");
case "running": // ...
case "notStarted": // ...
}
createHttpPoller
형식 PollerLike의 개체를 반환하는 함수입니다. 이 폴러는 오류가 있는 경우 다음과 같이 동작합니다.
- 를 호출하면
pollpollUntilDone옵션이 true로 설정되지 않은 한resolveOnUnsuccessful작업이 실패하거나 취소된 경우 오류가 발생합니다. -
poller.operationState?.status는 연산이 실패하거나 오류 응답을 반환할 때 또는"canceled"로"failed"설정됩니다.
예시
예제는 samples 폴더에서 찾을 수 있습니다.
문제 해결
로깅 (로그 기록)
장기 실행 작업 폴러를 구현하는 라이브러리의 재량에 따라 로그를 추가할 수 있습니다. azure-sdk-for-js 내의 패키지는 @azure/로거를 사용합니다.
다음 단계
이 라이브러리를 사용하는 방법에 대한 자세한 예제는 샘플 디렉터리를 살펴보세요.
기여(하기)
이 라이브러리에 기여하려면 기여 가이드 읽어 코드를 빌드하고 테스트하는 방법에 대해 자세히 알아보세요.
테스팅
테스트를 실행하려면 먼저 종속성( ) pnpm install을 설치한 다음 다음을 pnpm run test:node사용하여 단위 테스트를 실행합니다.
행동 강령
이 프로젝트는 Microsoft 오픈 소스 행동 강령
Azure SDK for JavaScript