回调函数之同步回调和异步回调

1. 什么是回调函数?

回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。

在JavaScript中,回调函数具体的定义为:函数A作为参数(函数引用)传递到另一个函数B中,并且这个函数B执行函数A。我们就说函数A叫做回调函数。如果没有名称(函数表达式),就叫做匿名回调函数。

详细请参考 https://blog.csdn.net/yilovexing/article/details/93192484
 

2. 同步回调和异步回调

(1)同步回调

  含义:立即执行,完全执行完了才结束,不会放入回调队列中

  例子:数组遍历相关的回调函数 / Promise的excutor函数

下面用代码说明:

const arr = [1, 2, 3, 4, 5]
arr.forEach(item => {
    console.log(item);   
  })
console.log('forEach之后打印'); 

 (2)异步回调

  含义:不会立即执行,会放入回调队列中将来执行

  例子:定时器回调 / ajax回调 / Promise的成功|失败的回调

请看代码:

 setTimeout(() => {
    console.log('timeout callback');   
  }, 0)
 console.log('setTimeout之前'); 

 关于同步回调和异步回调函数的更多相关理解请参考 https://www.cnblogs.com/still-smile/p/12048078.html

原文地址:https://www.cnblogs.com/BAHG/p/12908638.html