これは、ブラウザーと NodeJS の両方で動作する Azure SDK JavaScript クライアント ライブラリでの実行時間の長い操作の既定の実装です。 このライブラリは主に TypeSpec@azure-tools/typespec-ts エミッターによって生成されるコードで使用されることを意図しています。
@azure/core-lroは、実行時間の長い操作に関する Azure SDK 設計ガイドラインに従います
主要なリンク:
作業の開始
現在サポートされている環境
- Node.js の LTS バージョンを
する - Safari、Chrome、Edge、Firefox の最新バージョン。
取り付け
このパッケージは主に生成されたコードで使用され、エンド ユーザーが直接使用するためのものではありません。
重要な概念
PollerLike
ポーリングは、サーバーで実行時間の長い操作をポーリングして、その状態が終了状態になるまでポーリングできるオブジェクトです。 また、 Promise<TResult>を延長できるので、直接で最終結果を得るために await できます。 以下が提供されます。
-
operationState: は、演算の現在の状態を返すプロパティで、OperationStateを拡張する型として型付けします。 投票がまだ提出されていない場合はundefinedです。 -
result: これは演算が完了したときに結果を返し、それ以外は返undefined -
isDone: これは操作が終端状態にあるかどうかを返す性質です。 -
onProgress: ポーリング応答を受信するたびに呼び出されるコールバック関数を登録します。 -
poll: 1 つのポーリング要求を送信します -
pollUntilDone: 操作の結果で解決される Promise を返します。 -
serializeはポーラーの状態をシリアライズされた表現に解決する約束を返します -
submitted:はポーラーが正常に提出されたときに解決される約束を返します
OperationState
操作状態の型。 これには、status、notStarted、running、succeeded、および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型のオブジェクトを返す関数。 このポーリングは、エラーが発生した場合に次のように動作します。
-
pollとpollUntilDoneの呼び出しは、resolveOnUnsuccessfulオプションが true に設定されていない限り、操作が失敗または取り消された場合にエラーをスローします。 -
poller.operationState?.status操作が失敗するかエラー応答を返すと、"failed"または"canceled"に設定されます。
例示
例は、samples フォルダーにあります。
トラブルシューティング
ロギング(記録)
ログは、長時間実行操作ポーリングを実装するライブラリの判断で追加できます。 azure-sdk-for-js 内のパッケージでは、@azure/logger が使用されます。
次のステップ
このライブラリの使用方法の詳細な例については、ディレクトリ
投稿
このライブラリに投稿する場合は、コードをビルドしてテストする方法の詳細については、投稿ガイド を参照してください。
テスティング
テストを実行するには、まず依存関係を ( pnpm install を使用して) インストールし、次に pnpm run test:node を使用して単体テストを実行します。
行動規範
このプロジェクトは、「Microsoft のオープン ソースの倫理規定」を採用しています。 詳細については、行動規範に関する FAQ を参照するか、その他の質問やコメントを opencode@microsoft.com にお問い合わせください。
Azure SDK for JavaScript