<E>(self: Reason<E>): self is InterruptNarrows a Reason to Interrupt.
When to use
Use as a predicate for Array.filter to pick out Interrupt reasons when
iterating over cause.reasons.
Example (Filtering interrupt reasons)
import { Cause } from "effect"
const cause = Cause.interrupt(123)
const interrupts = cause.reasons.filter(Cause.isInterruptReason)
console.log(interrupts[0].fiberId) // 123Source effect/Cause.ts:2241 lines
export const const isInterruptReason: <E>(
self: Reason<E>
) => self is Interrupt
Narrows a Reason to Interrupt.
When to use
Use as a predicate for Array.filter to pick out Interrupt reasons when
iterating over cause.reasons.
Example (Filtering interrupt reasons)
import { Cause } from "effect"
const cause = Cause.interrupt(123)
const interrupts = cause.reasons.filter(Cause.isInterruptReason)
console.log(interrupts[0].fiberId) // 123
isInterruptReason: <function (type parameter) E in <E>(self: Reason<E>): self is InterruptE>(self: Reason<E>self: type Reason<E> = Fail<E> | Die | InterruptA single entry inside a Cause's reasons array.
Details
Narrow to a concrete type with
isFailReason
,
isDieReason
,
or
isInterruptReason
.
Fail<E> — typed error, access via .error
Die — untyped defect, access via .defect
Interrupt — fiber interruption, access via .fiberId
Every reason carries an annotations map and an annotate method for
attaching tracing metadata.
Example (Narrowing a reason)
import { Cause } from "effect"
const reason = Cause.fail("error").reasons[0]
if (Cause.isFailReason(reason)) {
console.log(reason.error) // "error"
}
Companion namespace for the Reason type.
Reason<function (type parameter) E in <E>(self: Reason<E>): self is InterruptE>) => self: Reason<E>self is Interrupt = import corecore.const isInterruptReason: <E>(
self: Cause.Reason<E>
) => self is Cause.Interrupt
isInterruptReasonReferenced by 2 symbols