05慕课网《进击Node.js基础(一)》HTTP概念进阶

HTTP模块介绍

支持http协议的更多特性

不缓存请求和响应

API比较底层处理流相关,信息解析

HTTP相关概念

回调

将函数作为参数传到执行函数中,参数函数在执行函数中嵌套执行

function learn(something){
    console.log(something);
}

function we(callback,something){
    something+=' is cool'
    callback(something)
}
//具名函数
we(learn,'Nodejs')
//匿名函数
we(function(something){
    console.log(something)
},'hello')

同步/异步

JavaScript中的异步函数

//在指定间隔内执行一次
setTimeout(function(){
   alert('1')
},2000)
//在执行间隔内重复执行,但是需要关闭alert,不会弹出N个
setInterval(function(){
   alert('1')
},2000)

同步

任务顺序执行,等待上一个执行完成再执行下一个

//同步
var c=0
function print(){
    console.log(c)
}

function plus(){
    setTimeout(function(){
        console.log('aaa')
    },1000)
    c+=1;
}
plus()
print()

异步

每个任务都有多个回调函数,前一个任务执行完毕后不执行下一个任务,而是执行回调函数;后一个任务按照任务的排列顺序执行,不会等待上一个任务执行完毕

//异步,任务执行完成后执行回调函数
var c=0
function print(){
    console.log(c)
}

function plus(callback){
    setTimeout(function(){
        c+=1;
        callback()
    },1000)
    console.log('a')
}
plus(print)

 

I/O

磁盘上数据读写

单线程/多线程

一次只能进行一个请求和响应

多个请求和响应同时进行

阻塞/非阻塞

阻塞:客户端一直等待服务端响应

非阻塞:请求无响应就去干别的,过段时间再请求

事件

点击,移动等操作

事件驱动

函数在事件发生的时候执行

基于事件驱动的回调

函数中的回调函数

事件循环

密集任务异步执行放到loop队列,单线程不断查询loop队列

猜你喜欢

转载自www.cnblogs.com/-beauTiFul/p/9095520.html