Exercise 20: Cancelable Promise
Problem Statement
Function `createCancelable(promise)` banao jo cancelable promise return kare.
Example: const {promise, cancel} = createCancelable(fetchAPI()); cancel()
Sample Output:
const {promise, cancel} = createCancelable(fetchAPI());
cancel(); await promise => rejects with "Cancelled"Solution
const createCancelable = (promise) => {
let cancelled = false;
const wrapped = new Promise((resolve, reject) => {
promise.then(val => cancelled ? reject(new Error("Cancelled")) : resolve(val),
err => cancelled ? reject(new Error("Cancelled")) : reject(err));
});
return {promise: wrapped, cancel: () => { cancelled = true; }};
};Explanation
Overall Goal:
- Cancelable promise create karna.
Real world:
- Request cancellation: cancel API calls.
- User actions: cancel operations.
Navigation
Previous
Exercise 19
Next
No next exercise
Category
Async / Promises
20 Exercises