2016 - 2024

感恩一路有你

callback回调函数 怎样区分回调函数与普通函数?

浏览量:1290 时间:2021-03-13 18:32:32 作者:admin

怎样区分回调函数与普通函数?

普通函数与回调函数的区别:调用普通函数:调用程序调用普通函数后,程序执行立即转为被调用函数执行,然后返回调用程序继续执行,直到被调用函数执行为止。从调用程序的角度看,这个过程是“call-->等待被调用函数执行完毕-->继续执行”调用回调函数:调用程序调用回调函数后,不等待函数执行完毕,而是立即返回并继续执行。这样,调用程序和被调用函数被同时执行。当被调用函数完成时,被调用函数将依次调用预先指定的函数,通知调用程序函数调用结束。这个过程称为回调,它是回调函数名称的来源。

回调函数是如何调用的呢?

事件驱动是概念,回调函数是实现方式。

无需回调函数即可实现事件驱动。

例如:要向队列发送事件消息,另一个进程可以接收队列进行处理(没有回调函数)。

事件驱动的基本特性:中央轮询机制。

事件循环的循环正在轮询。

轮询的目的是什么?感知

!当对象发生变化时,如何感知变化?

连续循环查询,循环检测

!系统n个对象,每个对象都有一个for循环来检测彼此的更改?

nonono……

建立一个轮询中心来轮询每个对象,称为事件驱动。

如果有变化,通知相关方。怎么处理?是定义一个回调函数。

事件驱动,属于“感知层”的概念;

轮询中心通常是操作系统本身;

对于浏览器,它是浏览器本身。

换句话说,系统是轮询中心,

您定义函数,系统调用您定义的函数。

对比:系统定义的API,您调用API。

谁定义函数,谁调用,角色颠倒

!API:系统定义的函数,由您调用;

事件驱动:由您定义的回调函数,由系统调用。

还是不明白?

事件驱动是“哨兵模式”

!Sentinel轮询环境信息,你睡得好,不是每个人都轮询环境。Sentinel(OS/Browser/polling center)负责通知您一个事件!如何处理这则新闻是你的责任

!给你

callback回调函数 为什么要用回调函数 回调函数好还是直接调用

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。