Bird
0
0

You have a function that reads user data asynchronously and uses an error-first callback:

hard📝 Application Q15 of 15
Node.js - Error Handling Patterns
You have a function that reads user data asynchronously and uses an error-first callback:
function fetchUser(id, callback) {
  if (id <= 0) {
    callback(new Error('Invalid ID'), null);
  } else {
    setTimeout(() => {
      callback(null, { id, name: 'Alice' });
    }, 50);
  }
}

How should you call fetchUser to correctly handle errors and print the user's name or the error message?
AfetchUser(1, (err, user) => { if (err) console.log(err.message); else console.log(user.name); });
BfetchUser(1, (err, user) => { if (user) console.log(user.name); else console.log(err.message); });
CfetchUser(1, (user, err) => { if (err) console.log(err.message); else console.log(user.name); });
DfetchUser(1, (err, user) => { console.log(user.name); });
Step-by-Step Solution
Solution:
  1. Step 1: Check callback parameter order and error handling

    The callback parameters must be (err, user). We check if err exists first to handle errors.
  2. Step 2: Verify correct conditional logic

    If err exists, print err.message; otherwise, print user.name. fetchUser(1, (err, user) => { if (err) console.log(err.message); else console.log(user.name); }); follows this correctly.
  3. Final Answer:

    fetchUser(1, (err, user) => { if (err) console.log(err.message); else console.log(user.name); }); -> Option A
  4. Quick Check:

    Check error first, then use user [OK]
Quick Trick: Always check error before using result in callback [OK]
Common Mistakes:
  • Swapping error and user parameters
  • Not checking error before accessing user
  • Ignoring error handling completely

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More Node.js Quizzes