Comments (5)
Are you maybe looking for our TestClock
? https://github.com/Effect-TS/effect/blob/main/packages/effect/src/TestClock.ts
from effect.
This also comes as part of our TestContext
(https://github.com/Effect-TS/effect/blob/661004f4bf5f8b25f5a0678c21a3a822188ce461/packages/effect/src/TestContext.ts) which is also utilized by our @effect/vitest
package.
from effect.
Closing this for now. Feel free to re-open if this didn't answer your question!
from effect.
It is almost the same, but actually, not:) RxJS VirtualTimeScheduler automatically tracks the time, while Effect TestClock requires user to manually adjust
time.
VirtualTimeScheduler
doesn't even have any methods to manually set time. The only method it offers is VirtualTimeScheduler.flush()
which execute all of its queued actions
and takes care of adjusting time. It is crucial when you have multiple parallel processes, each with different delays, and each of them wants to know the current time at different points of executions.
from effect.
Something like this. I know, it looks non realistic, but it's just a simple simulation of real world scenarios
const waitRandomTimeAndPrintCurrentTime = Effect.gen(function *(){
const randomSleepTime = yield* Random.nextIntBetween(1000,5000);
yield* Effect.sleep(randomSleepTime);
const currentTime = yield* Clock.currentTimeMillis;
yield* Console.log(currentTime);
})
const test = Effect.gen(function* () {
yield* Effect.forkDaemon(waitRandomTimeAndPrintCurrentTime)
yield* Effect.forkDaemon(waitRandomTimeAndPrintCurrentTime)
})
I would like to have something like TestClock.flush
that will execute all the actions that are waiting for execution. Something like tick in event loop, but for fibers.
from effect.
Related Issues (20)
- Showing help documentation does not respect `CliConfig.showBuiltIns` HOT 1
- schema struct with `fields` property is not valid
- From Discord: RuntimeException: @effect/rpc: handler must return an array of responses with the same length as the
- From Discord: Type Error in `schema.minItems` vs. `schema.maxItems` Usage
- Cli: Add file picker to wizard mode
- From Discord: Trouble Generating JSON Schema with `JSONSchema.make` for Parsed Schemas
- Match: `withReturnType` fails with union types in matcher chains
- Add Drizzle ORM support to @effect/sql-drizzle
- From Discord: Proposal: Rename to More Familiar Terms
- Support dark mode in api docs HOT 1
- From Discord: Schema Partial with Nullable Option
- Unsupported schema Error while applying Partial to Schema class HOT 4
- From Discord: Unifying Key and Value Schema Passing in `Schema.Record` and `Schema.{Hash,}Map` HOT 2
- From Discord: Confusion Over Schema.NonEmpty Naming for NonEmptyString Implementation
- From Discord: Rationale Behind Including Titles and Descriptions in JSON Schema Definitions
- From Discord: Transforming POJO with BigInt Keys to ReadonlyMap: Type Issue Solutions HOT 1
- From Discord: Alternative Method to Extract Case Type from `Data.TaggedEnum`
- From Discord: Runtime Error When Extending Object with Optional Keys in TypeScript
- Data.Error/TaggedError swallows cause when logged
- From Discord: Implementing AWS Lambda with `effect-http` Similar to `hono`
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from effect.