這是在瀏覽器和 NodeJS 中運作的 Azure SDK JavaScript 用戶端連結庫中長時間執行作業的預設實作。 此連結庫主要用於由 AutoRest 和 autorest.typescript所產生的程式代碼中。
@azure/core-lro 遵循 長時間執行作業的 Azure SDK 設計指導方針
主要連結:
開始
目前支持的環境
- LTS 版本的 Node.js
- 最新版的 Safari、Chrome、Edge 和 Firefox。
安裝
此套件主要用於產生的程式代碼中,而不是由終端使用者直接取用。
重要概念
SimplePollerLike
輪詢器是物件,可以在伺服器上輪詢長時間執行的作業,以取得其狀態,直到達到終端狀態為止。 它提供下列方法:
-
getOperationState:傳回作業的狀態,輸入為擴充的類型OperationState -
getResult:傳回作業完成時的結果,undefined否則傳回作業的結果 -
isDone:傳回作業是否處於終端機狀態 -
isStopped:傳迴輪詢是否停止 -
onProgress:註冊每次收到輪詢回應時要呼叫的回呼函式 -
poll:傳送單一輪詢要求 -
pollUntilDone:傳回會隨著作業結果解析的承諾 -
stopPolling:停止輪詢; -
toString:串行化輪詢器的狀態
OperationState
作業狀態的類型。
status其中包含具有下列可能值的欄位:notStarted、、runningsucceeded、failed、 和 canceled。 您可以存取它,如下所示:
switch (poller.operationState.status) {
case "succeeded": // return poller.getResult();
case "failed": // throw poller.getOperationState().error;
case "canceled": // throw new Error("Operation was canceled");
case "running": // ...
case "notStarted": // ...
}
createHttpPoller
傳回 型 SimplePollerLike別 物件的函式。 此輪詢器的行為如下:存在錯誤:
-
poll呼叫 並將pollUntilDone擲回錯誤,以防作業失敗或取消,除非resolveOnUnsuccessful選項設定為 true。 -
poller.getOperationState().status當作業失敗或傳回錯誤回應時,將會設定為 true。
例子
您可以在 samples 資料夾中找到範例。
故障排除
伐木
您可以根據實作長時間執行作業輪詢器的連結庫,來新增記錄。 azure-sdk-for-js 內的套件會使用 @azure/logger。
後續步驟
如需如何使用此連結庫的詳細範例,請參閱 範例 目錄。
貢獻
如果您想要參與此連結庫,請閱讀 參與指南,以深入瞭解如何建置和測試程序代碼。
測試
要運行我們的測試,請先安裝依賴項(使用 pnpm install),然後使用以下命令運行單元測試。 npm run unit-test
行為規範
此專案已採用 Microsoft開源行為準則。 如需詳細資訊,請參閱 《行為規範》常見問題 或連絡 opencode@microsoft.com,以取得任何其他問題或意見。