Exercise 16: Promise Finally Implementation
Problem Statement
Function `finally(promise, fn)` banao jo promise complete hone pe (success/failure) function call kare.
Example: finally(fetchAPI(), () => cleanup())
Sample Output:
await finally(fetchAPI(), () => cleanup()) // Calls cleanup regardless of success/failure
Solution
const finally = async (promise, fn) => {
try {
const result = await promise;
await fn();
return result;
} catch (err) {
await fn();
throw err;
}
};Explanation
Overall Goal:
- Promise complete hone pe cleanup function call.
Real world:
- Cleanup: resource cleanup.
- Finally: always execute.