Make any Promise cancellable.
npm install make-cancellable-promise !downloads 
Make any Promise cancellable.
- Install by executing npm install make-cancellable-promise or yarn add make-cancellable-promise.
- Import by adding import makeCancellablePromise from 'make-cancellable-promise.
- Do stuff with it!
``ts`
const { promise, cancel } = makeCancellablePromise(myPromise);
A function that returns an object with two properties:
promise and cancel. promise is a wrapped around your promise. cancel is a function which stops .then() and .catch() from working on promise, even if promise passed to makeCancellablePromise resolves or rejects.
#### Usage
`ts`
const { promise, cancel } = makeCancellablePromise(myPromise);
Typically, you'd want to use makeCancellablePromise in React components. If you call setState on an unmounted component, React will throw an error.
Here's how you can use makeCancellablePromise with React:
`tsx
function MyComponent() {
const [status, setStatus] = useState('initial');
useEffect(() => {
const { promise, cancel } = makeCancellable(fetchData());
promise.then(() => setStatus('success')).catch(() => setStatus('error'));
return () => {
cancel();
};
}, []);
const text = (() => {
switch (status) {
case 'pending':
return 'Fetching…';
case 'success':
return 'Success';
case 'error':
return 'Error!';
default:
return 'Click to fetch';
}
})();
return
{text}
;The MIT License.
Wojciech Maj |