Effect.fail
失敗するeffectを作成
code:ts
import { Effect, Random } from "effect"
class HttpError {
readonly _tag = "HttpError"
}
class ValidationError {
readonly _tag = "ValidationError"
}
// ┌─── Effect<string, HttpError | ValidationError, never>
// ▼
const program = Effect.gen(function* () {
// Generate two random numbers between 0 and 1
const n1 = yield* Random.next
const n2 = yield* Random.next
// Simulate an HTTP error
if (n1 < 0.5) {
yield* Effect.fail(new HttpError())
}
// Simulate a validation error
if (n2 < 0.5) {
yield* Effect.fail(new ValidationError())
}
return "some result"
})