GithubHelp home page GithubHelp logo

Comments (7)

spoike avatar spoike commented on June 17, 2024

Not sure if we're throwing error for this. The calls will be deferred, but it may still cause issues. We currently have circular dependency checks and some tests for them, e.g. this one, but not for this specific case.

The strategy is to throw errors (fail fast) since circular data flows is an error in design of the application that is being built.

from refluxjs.

undoZen avatar undoZen commented on June 17, 2024

It's difficult to detect such things. I think it should be a convention that stores should not trigger actions.

from refluxjs.

dashed avatar dashed commented on June 17, 2024

Stores calling an action violates the unidirectional data flow of flux. You may instead output a warning for users to directly use the stores underlying an action they're using.

from refluxjs.

undoZen avatar undoZen commented on June 17, 2024

Yes. If you want store A to notify store B that something has been changed, you shouldn't let store A call an action which store B listened to, instead just let store B listen to store A.

from refluxjs.

spoike avatar spoike commented on June 17, 2024

@dashed Well... the use case I know of is a store that handles web api, i.e. perform ajax requests. Since stores are designed to be listened on change events, they still need to send off HTTP errors from the requests.

Simplest way is to invoke an action that initiates flows for error handling so that components and other stores don't need to listen to errors they don't care about... alternatively is that the store sends a promise, but that makes things a bit more convoluted for error handlers.

from refluxjs.

undoZen avatar undoZen commented on June 17, 2024

eeh..

I deleted my comment by accident...

from refluxjs.

spoike avatar spoike commented on June 17, 2024

Closing this issue since there isn't much that can be done practically. If you manage to get an infinite loop, you need to redesign the application's data flows so that it doesn't.

Common sense, unless anyone knows of a good way of detecting such calls without a taxing overhead.

from refluxjs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.