Javascript和回调函数

时间:2018-06-08 12:12:09

标签: callback

我是编程语言的新手,我正在学习Javascript。我试图理解回调函数的概念。我意识到回调是一个作为参数传递的函数,但什么时候调用?

在下面的例子中,我使用经典方法编写函数,然后我尝试使用箭头函数。回调是done()函数,在第一个例子中它是在父函数之后调用的,在第二个函数之后调用。

是什么原因?你能给我一个解释吗?非常感谢您的反馈

示例编号。 1

function done(){
    console.log("Done");
}

function increment(num, callBack){
    for(var i = 0; i <= num; i++){
    console.log(i);
  }
  return callBack();
}

increment(10, done);

示例编号。 2

const done = () => {
    console.log("Done");
}

const increment = (num, done) => {
  for (var i = 0; i <= num; i++) {
      console.log(i);
    }
}
increment(10, done());

1 个答案:

答案 0 :(得分:0)

要使用回调,您需要指定将回调函数作为参数,并且您需要在父函数中的某个位置调用它,以及它将被调用的时间:

function someFunction(callback){
  //Do something if needed...
  callback() //callback(someParameter) if you want to pass some parameter to the callback func
  //Do something if needed...
}

在你的第二个例子中,它实际上不是使用回调函数的正确方法,因为你没有在父函数中调用回调函数。您可以将其修改为使其像第一个示例一样工作:

const increment = (num, done) => { 
    for (var i = 0; i <= num; i++) {
      console.log(i);
    }
    done(); //call the callback function
}
increment(10, done); //just pass the name of callback func, not call it like you did "done()"