I still confuse about callback function. I have a task to displays month using callback function, so I try to call my function getMonth for displays month and this is so far I got. I haven’t used Javascript before, so any help would be appreciated
const getMonth = (callback) => {
setTimeout(()=>{
let error = false;
let month = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October','November', 'December']
if(!error){
callback(null, month)
} else {
callback(new Error('Sorry Data Not Found', []))
}
}, 4000)
};
getMonth((err,result)=>{
if(err){
console.log(new Error(err)); //the output I want is: Sorry Data Not Found
}
console.log(err,result); //the output I want is::['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October','November', 'December']
})my output is:
setTimeout is not a function
Advertisement
Answer
You are assigning a function to setTimeout instead of puting the function as parameter of setTimeout
Just put the function as the first parameter of the setTimeout and you’re ready to go
const getMonth = (callback) => {
setTimeout(() => {
let error = false;
let month = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October','November', 'December']
if(!error){
callback(null, month)
} else {
callback(new Error('Sorry Data Not Found', []))
}
}, 4000)
};