Comments (3)
There have been several times I've thought "Hmmmm. what if I need to kill this object before the promise completes? How will the code in these resolve/reject callbacks behave? Will they throw exceptions? Do I want that to happen and potentially cause the promise to reject for other listeners too?"
If a promise consumer had the ability to say "I no longer want my callbacks called", that would let me write code that doesn't care about getting called after the objects in the current scope/context are destroyed. If when.js were able to release it's references to the callbacks, that would be even better since the garbage collector could free up the memory associated with those function calls.
from when.
It sounds like there are two potentially separate issues here:
- Besides the existing ability to cancel a deferred, it'd be nice to be able to safely grant another party the ability to cancel that deferred--similar to the current way in which resolver can safely be given to another party to grant the ability to resolve or reject the promise. Whether that "cancelability" belongs on the promise is a related question ... as is how/whether that cancelability would transfer to chained promises.
- The ability to "unobserve" a promise after you've registered to observe via
.then()
orwhen()
. To do this currently, you'd have to write special code in your promise handlers that bails out if they're called when you no longer care about the promise.
In other words, the two potentially useful, but different behaviors are: canceling the operation itself, and canceling your interest in the outcome of the operation.
If that sounds right, @unscriptable would you file a separate ticket for 2? If not, let me know what I got wrong, and we can try to clarify :)
from when.
This is being tracked over in the Promises/A+ cancellation supplemental spec
from when.
Related Issues (20)
- JSPM build (SystemJS builder) failing on [email protected] HOT 3
- Does not work in NodeJS (ReactJS Native) HOT 12
- Visual Studio debugger breakes from adding When to WebPack bundle. HOT 13
- 3.7.7 breakes the build on Windows HOT 2
- no such file or directory .... es6-shim/makePromise HOT 2
- Global rejection events completely broken in a bundled environment (eg. Webpack)
- When not working in Jasmine tests
- when.reduce UnhandledPromiseRejectionWarning HOT 4
- Misleading unhandled rejection warning when using when.settle HOT 10
- npm install ! has errors HOT 1
- Usage hello world example fails with TypeError HOT 3
- Binding context to promise chain HOT 2
- Add react-native support HOT 2
- File 404 when try to use in browser environment
- Promise.js first function never runs HOT 2
- RTE TypeError after production build HOT 4
- Does function call also accept promises? HOT 4
- Current project status HOT 1
- npm install failing with 404 error code
- Mark package as deprecated on npm?
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 when.