這是在瀏覽器和 NodeJS 中運作的 Azure SDK JavaScript 用戶端連結庫中長時間執行作業的預設實作。 此函式庫主要用於由 TypeSpec@azure-tools/typespec-ts 發射器產生的程式碼中。
@azure/core-lro 遵循 長時間執行作業的 Azure SDK 設計指導方針
主要連結:
開始
目前支持的環境
- LTS 版本的 Node.js
- 最新版的 Safari、Chrome、Edge 和 Firefox。
安裝
此套件主要用於產生的程式代碼中,而不是由終端使用者直接取用。
重要概念
PollerLike
輪詢器是物件,可以在伺服器上輪詢長時間執行的作業,以取得其狀態,直到達到終端狀態為止。 它也會 Promise<TResult>延伸,所以你可以直接用 await 來得到最終結果。 其提供了下列選項:
-
operationState:一個能回傳操作當前狀態的屬性,型別為擴展OperationState。 如果投票結果尚未提交,則是undefined -
result: 一個在操作完成時回傳結果的性質,undefined否則 -
isDone: 一個回傳操作是否處於終端狀態的性質 -
onProgress:註冊每次收到輪詢回應時要呼叫的回呼函式 -
poll:傳送單一輪詢要求 -
pollUntilDone:傳回會隨著作業結果解析的承諾 -
serialize回傳一個承諾,解析為輪詢器狀態的序列化表示 -
submitted: 回傳一個承諾,當輪詢器成功提交時才會被解決
OperationState
作業狀態的類型。
status其中包含具有下列可能值的欄位:notStarted、、runningsucceeded、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開源行為準則。 如需詳細資訊,請參閱 《行為規範》常見問題 或連絡 opencode@microsoft.com,以取得任何其他問題或意見。