A_75_Nodejs
2021-04-15 22:52:57 0 举报
AI智能生成
全面、高效的知识图谱:A_75_Nodejs!! 全面又深度的提升认知,达到实际应用的目的! 建议先纵观全局,掌握好大方向。 再根据自己的需要,针对性的学习某一个点,最后做到逐步由点及面。
作者其他创作
大纲/内容
闭包
用处
读取函数内部变量
让这些变量始终保持在内存中
注意
由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。
闭包会在父函数外部,改变父函数内部变量的值。所以,如果你把父函数当作对象(object)使用,把闭包当作它的公用方法(Public Method),把内部变量当作它的私有属性(private value),这时一定要小心,不要随便改变父函数内部变量的值。
常用框架
express
koa
Nodejs
同步代码(包括promise的构造函数) -> promise.then -> setTimeout ,实际上promise.then内部会根据系统来判断,若系统支持setImmediate则直接执行该函数,否则执行process.nextTick
异步流程控制
Promise
两大特点
对象的状态不受外界影响
一旦状态改变就不会再变
三种状态
pending
fullfilled
rejected
缺点
一旦建立就会立即执行,无法中途取消
内部抛出的错误无法反应到外部,同时异常堆栈没有记录出错的具体位置
当处于pending状态时,无法得知目前进展到哪个阶段
若业务逻辑过多会导致有过多的then及嵌套,导致代码可读性变差
调试不方便
co模块
yield后面的数据类型
promise
thunks
array
objects
generators
generator functions
并发异步
async模块
模块导出分析
async/await
async
无返回值
会返回Promise.resolve(undefined)
有返回值
直接量
返回Promise.resolve(直接量)
await
apply/call
绑定后立即执行
绑定后非立即执行
apply
call
bind
非IO异步Api
内部由红黑树实现,时间复杂度为O(lg(n))
settimeout
回调函数中的this指向window对象
setTimeout不止两个参数,后面的参数可作为回调参数的入参
所谓的立即执行 0
HTML5中已经将最小执行时间统一为4ms
setInterval
实现与settimeout大体一致,只是该方法多了重复执行的过程
setImmediate
内部由链表实现
process.nextTick
内部由数组实现,时间复杂度为O(1)
优先级对比
0 条评论
回复 删除
下一页