Comments (9)
I'm thinking of making this an opt-in behavior. Provide some config argument, so the developer can choose to disable the console warnings
from redux-saga.
Not sure I understand the issue. Saga cancellation exceptions are only thrown when yielding a cancel effect. But I dont see any cancel effect in the code above
from redux-saga.
Sorry, I left out an important piece - the root saga invoking this chain.
function* root() {
let process
while (true) {
yield take(SOME_TRIGGER)
if (process && process.isRunning()) {
yield cancel(process)
}
process = yield fork(fetchSomeStuff)
}
}
I use this pattern when the user can click on a list of items, and each click will trigger a data fetch for that item. If the user changes his mind and clicks on a different item while one is already loading, we can cancel the first data fetch.
It's not a huge ordeal, I'm just pointing out that when yield cancel(process)
is triggered, it will throw SagaCancellationException
in each branch of the fetchSomeStuff
- which is fine, but it might be too ambitious to console.warn
in each branch that doesn't explicitly handle that exception. I don't want to have to write a try/catch
for every level of my saga if only one (bottom-most) or two (bottom most and top most) levels actually do anything after the exception.
from redux-saga.
but it might be too ambitious to console.warn in each branch that doesn't explicitly handle that exception
the warning is printed just to remind the developer in case he forgot to handle the cancellation. Which can lead to some mysterious bugs (inconsistent state)
from redux-saga.
I would 👍 that... perhaps just the NODE_ENV="production"
convention. I have used that with something like envify in the past and it works well.
from redux-saga.
perhaps just the NODE_ENV="production" convention. I have used that with something like envify in the past and it works well.
Agree; I think it's a better idea
from redux-saga.
Note that you'll want to make sure error behavior is exactly the same between prod and dev versions. If anything throws, it should throw in both cases. Logging a warning only in dev is fine though.
from redux-saga.
Looks like this was taken care of in https://github.com/yelouafi/redux-saga/blob/no-promise/src/proc.js#L79-L81
from redux-saga.
@aft-luke yes. Included with the new 0.6.0
from redux-saga.
Related Issues (20)
- Waiting for an action with takeMaybe / take after END is dispatched for SSR HOT 7
- Is it possible to selectively cancel tasks in an actionChannel? Ie cancel the 3rd task out of 5 running ones. HOT 5
- Is it possible for a saga to "trace" the effect "chain"? HOT 4
- Delay inside of while loop may never fire with React Native 0.71.6 HOT 2
- UI freezes when chrome devtools is open HOT 4
- Redux 4.0 - Unable to access updated data using useSelector HOT 2
- could we add leading/trailing edge options for debounce? HOT 3
- Workflow has flaw
- Why not use the await and async instead of the generator and yield? HOT 1
- TS2345 error while putting thunk actions
- React native Redux Saga with Redux Tollkit
- Module '"redux-saga/effects"' has no exported member 'call'. HOT 4
- Is there a standard way to break while true loops with call effect when END is dispatched? HOT 1
- Can put type improvements be released downstream? HOT 2
- Sending very large files, tasks in parallel are using a lot of memory
- How to use package that use redux-saga as dependency when its in webpack externals? HOT 7
- Help me connect redux-saga with Nextjs 13.5 using app router HOT 2
- Update peer dependencies to include `redux@5` (currently beta) HOT 14
- feature request: interface for integration with other frameworks (like Vue) HOT 2
- Redux saga is not working in apps script react js project HOT 2
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 redux-saga.