callback异步、事件编程和高阶函数的区别

304 阅读1分钟

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不是一个异步阻塞事件完成的「事件处理函数」,而是每次循环的「通用处理」!它不同一个中间事件调用器,它是同步的。