HTTP概念进阶

 

一、什么是回调

回调是异步编程时的基础,将后续逻辑封装在回调函数中作为起始函数的参数,逐层嵌套,通过这种方式让程序按照我们所期望的方式执行。
function say(something){ //定义回调函数 console.log(something); } function me(callback,something){ //做为参数传递 something += ' is cool'; callback(something); } me(say,'Ray'); me(function(something){ //使用匿名函数 console.log(something); },'ms');

二、什么是同步/异步

同步指的是:发送方发出数据后,等待接收方发回响应才能发送下一个数据包的通讯方式。程序的执行顺序与任务的排列顺序是一致的。
var c = 0; function printS(){ console.log(c); } function plus(){ c += 1; } plus(); printS(); //1 结果为1 程序按照顺序执行
异步是指:发送方发出数据后,不等待对方发回响应,接着发送下一个数据包的通讯方式。程序的执行顺序与任务的排列顺序不是一致的,是异步的,在JS中两个异步函数setTimeout()setInterval()
var c = 0; function printS(){ console.log(c); } function plus(){ setTimeout(function(){ c += 1; },1000); } plus(); printS(); //0 结果为0 程序为异步执行

三、什么是单线程和多线程

一次只能执行一个程序叫做单线程
一次能执行多个程序叫做多线程

四、什么是IO

磁盘的写入、磁盘的读取就是数据的进和出,就是IO。

五、什么是阻塞/非阻塞

阻塞:前一个进程没有执行完就一直占用着CPU的资源,其他进程一直处于等待的过程。
非阻塞:前一个进程没有执行完时可以挂起,继续执行其他进程,等到使用时再执行。

六、什么是事件

事件就是一个触发动作,比如点击按钮

七、什么是事件驱动

事件驱动就是一个触发动作引起的操作

八、什么是基于事件驱动的回调

为了某个事件注册了回调函数,但是这个回调函数不是马上执行,只有当事件发生的时候,才会调用回调函数,这种函数执行的方式叫做事件驱动,这种注册回调就是基于事件驱动的回调。

九、什么是事件循环

管理大量异步操作的机制叫做事件循环。Event Loop是回调函数队列,异步执行的函数会被压入这个队列,队列会被循环查询。

对于nodejs来说靠一个单线程不断的查询队列中是否有事件,当他读取到一个事件的时候,将调用与这个事件相关的JavaScript函数,那么事件的循环是一个先进先出的任务队列,那么回调就按照他们被加入队列的顺序来执行。

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

参考: https://www.cnblogs.com/mcray/p/6659127.html

,

一、什么是回调

回调是异步编程时的基础,将后续逻辑封装在回调函数中作为起始函数的参数,逐层嵌套,通过这种方式让程序按照我们所期望的方式执行。
function say(something){ //定义回调函数 console.log(something); } function me(callback,something){ //做为参数传递 something += ' is cool'; callback(something); } me(say,'Ray'); me(function(something){ //使用匿名函数 console.log(something); },'ms');

二、什么是同步/异步

同步指的是:发送方发出数据后,等待接收方发回响应才能发送下一个数据包的通讯方式。程序的执行顺序与任务的排列顺序是一致的。
var c = 0; function printS(){ console.log(c); } function plus(){ c += 1; } plus(); printS(); //1 结果为1 程序按照顺序执行
异步是指:发送方发出数据后,不等待对方发回响应,接着发送下一个数据包的通讯方式。程序的执行顺序与任务的排列顺序不是一致的,是异步的,在JS中两个异步函数setTimeout()setInterval()
var c = 0; function printS(){ console.log(c); } function plus(){ setTimeout(function(){ c += 1; },1000); } plus(); printS(); //0 结果为0 程序为异步执行

三、什么是单线程和多线程

一次只能执行一个程序叫做单线程
一次能执行多个程序叫做多线程

四、什么是IO

磁盘的写入、磁盘的读取就是数据的进和出,就是IO。

五、什么是阻塞/非阻塞

阻塞:前一个进程没有执行完就一直占用着CPU的资源,其他进程一直处于等待的过程。
非阻塞:前一个进程没有执行完时可以挂起,继续执行其他进程,等到使用时再执行。

六、什么是事件

事件就是一个触发动作,比如点击按钮

七、什么是事件驱动

事件驱动就是一个触发动作引起的操作

八、什么是基于事件驱动的回调

为了某个事件注册了回调函数,但是这个回调函数不是马上执行,只有当事件发生的时候,才会调用回调函数,这种函数执行的方式叫做事件驱动,这种注册回调就是基于事件驱动的回调。

九、什么是事件循环

管理大量异步操作的机制叫做事件循环。Event Loop是回调函数队列,异步执行的函数会被压入这个队列,队列会被循环查询。

对于nodejs来说靠一个单线程不断的查询队列中是否有事件,当他读取到一个事件的时候,将调用与这个事件相关的JavaScript函数,那么事件的循环是一个先进先出的任务队列,那么回调就按照他们被加入队列的顺序来执行。

 

参考: https://www.cnblogs.com/mcray/p/6659127.html

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄