- 在editStorageForm中初始化oss_storage_quota_value和oss_quota_unit - 删除重复的旧配额说明块,保留新的当前配额设置显示 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
49 lines
1.6 KiB
JavaScript
49 lines
1.6 KiB
JavaScript
import { runPolling } from "./poller";
|
|
import { validateWaiterOptions } from "./utils";
|
|
import { waiterServiceDefaults, WaiterState } from "./waiter";
|
|
const abortTimeout = (abortSignal) => {
|
|
let onAbort;
|
|
const promise = new Promise((resolve) => {
|
|
onAbort = () => resolve({ state: WaiterState.ABORTED });
|
|
if (typeof abortSignal.addEventListener === "function") {
|
|
abortSignal.addEventListener("abort", onAbort);
|
|
}
|
|
else {
|
|
abortSignal.onabort = onAbort;
|
|
}
|
|
});
|
|
return {
|
|
clearListener() {
|
|
if (typeof abortSignal.removeEventListener === "function") {
|
|
abortSignal.removeEventListener("abort", onAbort);
|
|
}
|
|
},
|
|
aborted: promise,
|
|
};
|
|
};
|
|
export const createWaiter = async (options, input, acceptorChecks) => {
|
|
const params = {
|
|
...waiterServiceDefaults,
|
|
...options,
|
|
};
|
|
validateWaiterOptions(params);
|
|
const exitConditions = [runPolling(params, input, acceptorChecks)];
|
|
const finalize = [];
|
|
if (options.abortSignal) {
|
|
const { aborted, clearListener } = abortTimeout(options.abortSignal);
|
|
finalize.push(clearListener);
|
|
exitConditions.push(aborted);
|
|
}
|
|
if (options.abortController?.signal) {
|
|
const { aborted, clearListener } = abortTimeout(options.abortController.signal);
|
|
finalize.push(clearListener);
|
|
exitConditions.push(aborted);
|
|
}
|
|
return Promise.race(exitConditions).then((result) => {
|
|
for (const fn of finalize) {
|
|
fn();
|
|
}
|
|
return result;
|
|
});
|
|
};
|