CircuitBreakerOpenError
import { CircuitBreakerOpenError } from "jsr:@ende/async/unstable-circuit-breaker";class ยท experimental
class CircuitBreakerOpenError extends ErrorError thrown when CircuitBreaker is open and rejects a request.
Example: Usage
import { CircuitBreaker, CircuitBreakerOpenError } from "@ende/async/unstable-circuit-breaker";
import { assert } from "@ende/assert";
const breaker = new CircuitBreaker({
failureRateThreshold: 1,
minimumThroughput: 1,
});
// Trigger a failure to open the circuit
try {
await breaker.execute(() => Promise.reject(new Error("fail")));
} catch (_) {
// Expected to fail
}
// Now the circuit is open
try {
await breaker.execute(() => Promise.resolve("ok"));
} catch (error) {
assert(error instanceof CircuitBreakerOpenError);
assert(error.remainingCooldownMs >= 0);
}
Constructors
constructor
new CircuitBreakerOpenError(remainingCooldownMs: number)experimental
Constructs a new CircuitBreakerOpenError instance.
remainingCooldownMs: numberThe number of milliseconds until the circuit breaker exits the open state.
Properties
remainingCooldownMs
readonly remainingCooldownMs: numberexperimental
Milliseconds until the circuit breaker cooldown expires.
Example: Usage
import { CircuitBreakerOpenError } from "@ende/async/unstable-circuit-breaker";
import { assertEquals } from "@ende/assert";
const error = new CircuitBreakerOpenError(5000);
assertEquals(error.remainingCooldownMs, 5000);