GithubHelp home page GithubHelp logo

Comments (3)

acdlite avatar acdlite commented on April 24, 2024

Hmm, it's hard for me to know how to answer this without more specifics. One possible solution would be to pass a timestamp along with the payload so your store handler can determine how to deal with multiple actions:

// actions.js
async getThing() {
  let thing = await RESTUtils.fetchThing();
  return {
    thing,
    timestamp: Date.now()
  };
}

// store.js
handleGetThing({ thing, timestamp }) {
  if (timestamp > this.latestTimestamp) {
    this.latestTimestamp = timestamp;
    // do something
  } else {
    // do something else
  }
}

(This isn't something I've actually tried; just an idea.)

from flummox-isomorphic-demo.

simenbrekken avatar simenbrekken commented on April 24, 2024

On second thought these kinds of race conditions are probably best handled in the actual API module by aborting duplicate requests, that way the success/failure counterparts of an action will never get fired and thus don't need to be explicitly handled.

from flummox-isomorphic-demo.

ivan-kleshnin avatar ivan-kleshnin commented on April 24, 2024

@simenbrekken as long as your backend is clustered this is not so easy.
I wouldn't rely on backend to implement debounce for you, because you waste you network traffic and processor ticks to perform useless work even if duplicate requests are thrown away.

@acdlite do we have any API to temporary unsubscribe from subsequent events on actionBegin and resubscribe on actionCompleted / actionFailed? Or somehow debounce events in other way. This should be at Action level.

This demoes again how custom event architectures loose against Rx beauty...

from flummox-isomorphic-demo.

Related Issues (8)

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.