8

Is there a way to pass anonymous function as a custom callback function in Javascript? I have this code:

function notifyme(msg){
    console.log(msg)
}

notifyme("msg", function(){
    //do some custom redirect logic    
});

I am trying the above code and it's executing notifyme function, but not going further with redirect code. I know I can pass a function name as a callback, but I don't have a specific function that I can pass. This is why they invented the anonymous function I guess.

It'd be really nice if there was a way to do that.

2
  • Possible duplicate of JavaScript Style : optional callbacks Commented Feb 13, 2017 at 12:27
  • The question is not about optional callback, it's about passing anonymous function call back Commented Feb 13, 2017 at 12:45

3 Answers 3

19

Your code pattern should be like

function notifyme(msg,callback){
    console.log(msg);
    // Do your stuff here
    if(callback){
      callback();
    }
}

notifyme("msg", function(){
    //do some custom redirect logic    
});

Sign up to request clarification or add additional context in comments.

Comments

6

You can call your function simply by invoking it ():

function notifyme(msg, myFunc){
        console.log(msg);
        myFunc();
}
    
notifyme("msg", () => {
        console.log("function called");   
});

myFunc in the above is a variable pointing at your function. By invoking it, () you call the function that the variable (myFunc) points at.

This answer doesn't go into details about the custom redirect logic. Because I don't know what this does.

Comments

4

You need to call your callback!

function notifyme(msg, callback){
    console.log(msg);
    callback();
}

notifyme("msg", function(){
//do some custom redirect logic    
});

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.