Merge commit '36c66dd290d3ce6eb1ccd310d0c658d4a32bb8eb' as 'repos/effect'
This commit is contained in:
25
repos/effect/packages/tools/bundle/fixtures/batching.ts
Normal file
25
repos/effect/packages/tools/bundle/fixtures/batching.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import * as Array from "effect/Array"
|
||||
import * as Effect from "effect/Effect"
|
||||
import * as Exit from "effect/Exit"
|
||||
import * as Request from "effect/Request"
|
||||
import * as Resolver from "effect/RequestResolver"
|
||||
|
||||
class GetNameById extends Request.TaggedClass("GetNameById")<{
|
||||
readonly id: number
|
||||
}, string> {}
|
||||
|
||||
const UserResolver = Resolver.make<GetNameById>((entries) =>
|
||||
Effect.sync(() => {
|
||||
for (const entry of entries) {
|
||||
entry.completeUnsafe(Exit.succeed(`User ${entry.request.id}`))
|
||||
}
|
||||
})
|
||||
)
|
||||
|
||||
const effect = Effect.forEach(
|
||||
Array.range(1, 100_000),
|
||||
(id) => Effect.request(new GetNameById({ id }), UserResolver),
|
||||
{ concurrency: "unbounded" }
|
||||
)
|
||||
|
||||
Effect.runFork(effect)
|
||||
Reference in New Issue
Block a user