Comments (3)
I still struggle with finding a motivating example for this functionality. I haven't run into this problem yet when dog fooding Reflux in my own project because the work around is to let lower-level store listen to other stores which turns out to be a much simpler solution. The lower-level store can get the raw action data (from e.g. ajax calls) if the higher-level store makes it accessible.
From my P.O.V. this seems to be a design consideration for the user's application rather than Reflux itself.
I'm open to suggestions with motivating examples from the community, so I know why this needs to be implemented.
from refluxjs.
I think something like waitFor
is out of scope for this project and promises does this sort of thing well:
var Promise = require("bluebird");
var waitFor = function() {
var last = arguments.length - 1,
promises = [];
for (var i = 0; i < last; ++i) {
var listenable = arguments[i];
var promise = new Promise(function(fulfill){
listenable.listen(fulfill);
});
promises.push(promise);
}
promises.push(arguments[last]);
Promise.join.apply(null, promises);
};
// Creates a DataStore
var statusStore = Reflux.createStore({
// Initial setup
init: function() {
waitFor(action, store, anotherStore, anotherAction, this.output);
},
// Callback
output: function(flag) {
var status = flag ? 'ONLINE' : 'OFFLINE';
// Pass on to listeners
this.trigger(status);
}
});
from refluxjs.
Very nice! I agree @spoike that generally speaking waitFor
isn't needed and since @dashed was kind enough to contribute an easy promise-based solution, I'll close this.
from refluxjs.
Related Issues (20)
- init not firing HOT 1
- Object doesn't support property or method 'createActions' IE 11 HOT 1
- Support of React.js v16 HOT 6
- How are keys handled if a component is attached to multiple stores with the same key? HOT 2
- Async/await pattern with async actions HOT 3
- can we have react 16.x compatibility HOT 4
- TypeError: str.listen is not a function HOT 1
- Extending Reflux Store HOT 1
- async in Server Rendering HOT 1
- TypeError: Super expression must either be null or a function, not undefined HOT 1
- setState callback not executed in store HOT 2
- setState should support callbacks, same as the typical react setState HOT 1
- reflux store this.setState callback
- Store listening to actions after dismount
- async actions return undefined instead of Promise HOT 3
- Cannot Use Reflux Components With React getDerivedStateFromProps() Static Method HOT 3
- Roadmap questions HOT 5
- react组件中获取元素节点,使用focus方法,报错focus未定义
- Feature Request: Make Reflux available for Functional Components HOT 1
- Please mark project as dead
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 refluxjs.