javascript中的回调和异步

在js中不少时候一提及回调,印象中立马就出现了异步的场景,实际上印象中的是异步回调,只是回调中的一种,固然除了异步还有同步。同步回调,提及来老是感受怪怪的,主要是混淆了回调和异步的概念,或是对回调的定义不是很清楚,只不过印象中让他们等价了callback==async。既然只是名字而,那么首先要清楚callback和async的定义。javascript

callback回调

在计算机程序设计中,回调函数,或简称回调(Callback 即call then back 被主函数调用运算后会返回主函数),是指经过函数参数传递到其它代码中的,某一块可执行代码的引用(维基)java

简单来讲,就是将函数A做为参数传递到函数B中,调用函数B时,函数A会被执行,那么咱们就称函数A为回调函数。编程

使用场景

同步回调promise

function A() {console.log('a')}

function B(callback) {
    console.log('B')
    callback && typeof callback === 'function' && callback();    
}

B(A)

异步回调异步

$('#id').click(function() {
    console.log('clicked')
})

因此callback不必定用于异步,通常同步的场景下也常常会用到回调,尤为想javascript这种函数是一等公民的编程语言,函数最为参数传来传去很常见。同时javascript做为基于事件的异步编程语言,异步回调也是最多见的用法。async

常见的异步场景编程语言

  • 定时函数 setTimeout, setInterval, process.next等
  • on事件监听,subscribe事件订阅
  • promise异步编程
相关文章
相关标签/搜索