我是编程语言的新手,我正在学习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());
答案 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()"