callback(函数作参)使用的例子:2021-08-22
1 阻塞操作
L 时序阻塞:计算任务异步阻塞,例如IO读写,网络延迟,人工定时
E 事务阻塞:交互事件编程(用户触发交互的时机是任意的)
L 事件处理程序(MVC 中的C)也是一处callback
2 非阻塞操作(一种抽象分割程序功能的技术)
L Array.map
L 高阶函数
callback异步 与 事件编程的关系(浏览器事件系统)
1 callback 强调是机制本身,它依赖一个事件调度系统,它也是 环境(node or broswer)事件编程的基础技术之一
L 事件编程强调的是“事件”本身丰富的涵义
2 callback异步 一般指 时序阻塞性事件,事件涵义较简单;事件编程一般指 事务性阻塞事件
3
callback异步 与 高阶函数(Array.map)的关系
ES5 提供array extra 函数是典型的 函数式编程例子,高阶函数也是接受函数作参数(像下面的 array.filter(fn) ):
var uniqueProducts = array.filter(function(elem, i, array) {
return array.indexOf(elem) === i;
}
);
fn 看起来 也像一个callback,这会被filter每次循环调用一次;不同的是,fn不是一个异步阻塞事件完成的「事件处理函数」,而是每次循环的「通用处理」!它不同一个中间事件调用器,它是同步的。