Comments (5)
Design decision made thus far:
- async/sync changes delivery will be controllable on the level of
Observable
, nor lower than that (not per observer callback), nether higher - the whole framework - the default flavour will remain the same - sync
- in order to make an
Observable
to dispatch the changes inasync
way the following API should be used (pay attention to the secondoptions
parameter):
const oo = Observable.from({ <some object> }, { async: true });
- changes will be delayed later on in the same task, by
queueMicrotask
means - if the callback causes new changes to be delivered, they'll be dispatched in the next microtask, not the currently running
from object-observer.
I'm closing this again, I'll state few things to get to it back if needed in the future:
- it is not really any async unless got for some
setTimeout
stuff and probably even more relevant -requestAnimationFrame
; but as soon as things become that complex - my feeling is that it should be kept consuming application concern; at the end of the day we are already running in some callback context, so it might quite be good enough to just run as fast as possible, synchronously and if any needed - use another streaming patterns to batch / async heavy processing - no real use case so far seen for this scenario
from object-observer.
Reopening this to link to another issue, that actually will benefit from this one. So this is a use-case that justifies and async flavor.
from object-observer.
As it can be seen, the async behaviour, while not yet justified in itself, may serve the expected API behaviour like an Object.assign
flow. In that use-case, while the native behaviour is to perform each and every property assignment on it's own, thus causing the changes delivery one per callback, the expected Observable
API behaviour is to get the changes in batch. Async management of the changes delivery is enabler for that step.
from object-observer.
implemented in 3.2.0
from object-observer.
Related Issues (20)
- pathsOf filter is misbehaving HOT 1
- Unable to get regexp from observable HOT 5
- Un-cure native objects unless proven needed HOT 1
- [ci/cd] remove custom CI logic in favor of standard npm version HOT 1
- Add TS definitions for convenience
- fix TS definition of Observable
- fix ChangeType type in TS definition
- the options should be optional on ObjectObserver's observe type definition
- Access the original object + some ideas HOT 6
- externalize `[un]observe` API - eliminate source modification
- Clean up the patching source code HOT 1
- Any way to prevent changes? HOT 2
- Exported CommonJS package HOT 15
- Request: Lite Version of Object Observer HOT 2
- Allow omission of observed keys and handling of cyclic references HOT 2
- handle correctly circular shaped object passed for observation HOT 3
- Wildcard path HOT 1
- Unwrapping proxies, getting the original raw object HOT 2
- Broken when using with typescript and "moduleResolution": "bundler" HOT 3
- Consider implementing the clone via structuredClone native method HOT 1
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 object-observer.