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.