Challenge - 5 Problems
Error-first Callback Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2:00remaining
Understanding error-first callback output
What will be the output of this Node.js code using an error-first callback?
Node.js
function fetchData(callback) {
setTimeout(() => {
callback(null, 'Data loaded');
}, 100);
}
fetchData((err, data) => {
if (err) {
console.log('Error:', err);
} else {
console.log('Success:', data);
}
});Attempts:
2 left
💡 Hint
Remember, the first argument is the error, the second is the data.
✗ Incorrect
The callback receives null as the error, so the else branch runs, printing 'Success: Data loaded'.
❓ Predict Output
intermediate2:00remaining
Detecting error in error-first callback
What will this code print when the callback receives an error?
Node.js
function readFile(callback) {
setTimeout(() => {
callback(new Error('File not found'), null);
}, 50);
}
readFile((err, content) => {
if (err) {
console.log('Error:', err.message);
} else {
console.log('Content:', content);
}
});Attempts:
2 left
💡 Hint
Check how the error object is passed and accessed.
✗ Incorrect
The callback receives an Error object as the first argument, so the if branch runs and prints the error message.
❓ component_behavior
advanced2:30remaining
Behavior of nested error-first callbacks
Consider this nested callback code. What will be logged?
Node.js
function step1(cb) {
setTimeout(() => cb(null, 'Step1 done'), 30);
}
function step2(cb) {
setTimeout(() => cb(new Error('Step2 failed'), null), 20);
}
step1((err, res1) => {
if (err) {
console.log('Error in step1:', err.message);
} else {
step2((err, res2) => {
if (err) {
console.log('Error in step2:', err.message);
} else {
console.log('Success:', res2);
}
});
}
});Attempts:
2 left
💡 Hint
Look carefully at which callback receives the error.
✗ Incorrect
step1 succeeds, so step2 runs and returns an error, triggering the error log for step2.
📝 Syntax
advanced2:00remaining
Identify the syntax error in error-first callback usage
Which option contains a syntax error in the error-first callback pattern?
Node.js
function getData(callback) {
setTimeout(() => {
callback(null, 'OK');
}, 10);
}
getData((err data) => {
if (err) {
console.log('Error:', err);
} else {
console.log('Data:', data);
}
});Attempts:
2 left
💡 Hint
Check the arrow function parameter list syntax.
✗ Incorrect
Option A misses a comma between parameters, causing a syntax error.
🔧 Debug
expert3:00remaining
Debugging incorrect error handling in callback
What is the main problem with this error-first callback usage?
Node.js
function processData(callback) {
setTimeout(() => {
callback(null, 'Done');
}, 10);
}
processData((err, data) => {
if (!err) {
console.log('Error:', err.message);
} else {
console.log('Success:', data);
}
});Attempts:
2 left
💡 Hint
Check how err is tested and used inside the callback.
✗ Incorrect
The code checks if !err (meaning no error), then tries to access err.message, causing a runtime error because err is null.