同步回调和异步回调

一个函数作为另一个函数的参数,当这个函数在某些事情完后开始执行这个作为参数的函数。作为参数传给另一个函数,并在适当时机被“回过头”来调用的函数。

可以这样理解它:不是父函数执行完立刻调用它,而是父函数在某个时机(比如处理完数据、事件触发、网络请求成功等)才调用它。

  • 同步调用
function greet(name, callback) {console.log("你好," + name);callback();  // 此处调用传入的函数
}function sayBye() {console.log("再见!");
}greet("张三", sayBye);   // => 你好,张三// => 再见!

sayBye是回调函数;
它是被greet传进去,在适合时机调用的。

  • 异步回调(比如网络请求)
axios.get('/api/books').then(function(response) {console.log('请求成功,返回数据:', response);});

.then(function)里的函数就是一个回调。
只有当axios请求成功后,这个函数才会被自动调用。
不是”主函数执行完就调用“,而是”请求成功后才调用“。