Comments (2)
More thoughts:
-
If an
async function*
does ayield pr
instead ofawait pr
, then CAF can cancel immediately and just discard/ignore thatyield
ed promise.Of course,
await pr
in yourasync function*
is kinda the whole point of them... if you didn't want to useawait pr
, then you could/should just use normalfunction*
. So suggesting this as a "work-around" would kinda just be suggesting an anti-pattern. -
You don't need to use
async function*
for emulating cancelableasync
... that's whatfunction *
does. There's no benefit to choosing to useasync function*
for this synchronous-async pattern. So maybe CAF just doesn't need to support them because it's sorta pointless/moot to support them.
from caf.
I have decided finally... no we won't support async generators. The tipping point is, yield x
in an async generator implicitly awaits
the value if it's a promise, so... IOW there's no way for CAF to truly stop/finalize an async generator instance with a Promise.race(..)
over the yielded value, the way we can do with normal generators.
from caf.
Related Issues (20)
- Only catch canceled promise HOT 2
- Can't use with create-react-app HOT 28
- Implementing debounce with CAF? HOT 11
- What happens to cancelled generator functions? No leaks? HOT 2
- How to use CAF with Axios' `cancelToken` argument? HOT 5
- Feature request: configurable 'this' context HOT 3
- Unexpected try/catch/finally semantics HOT 11
- Switch cancelToken to AbortSignal HOT 10
- Possible improvement to memory cleanup in signal race/all combinators HOT 1
- AbortController (in Node), integration with CAF? HOT 9
- How can I dynamically detect a CAF-wrapped generator? HOT 4
- ReferenceError: AbortController is not defined HOT 8
- Import Problems — TypeError: (0 , _caf.CAF) is not a function HOT 9
- AbortController not defined using ES Import statements HOT 1
- Cannot set property reason of #<AbortSignal> which has only a getter HOT 6
- Improve error when `signal` isn't passed down correctly to a sub-CAF HOT 1
- Typescript typings file :) HOT 6
- update "abortcontroller" to fully use new version of polyfill
- add `signalRace(..)` and `signalAll(..)` helpers
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 caf.