Nodejs
2024-06-07 17:36:49 0 举报
AI智能生成
Nodejs知识体系
作者其他创作
大纲/内容
常用框架
express
koa
闭包
用处
读取函数内部变量
让这些变量始终保持在内存中
注意
由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,
所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。
解决方法是,在退出函数之前,将不使用的局部变量全部删除。
闭包会在父函数外部,改变父函数内部变量的值。所以,如果你把父函数当作对象(object)使用,把闭包当作它的公用方法(Public Method),把内部变量当作它的私有属性(private value),这时一定要小心,不要随便改变父函数内部变量的值。
异步流程控制
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
settimeout
回调函数中的this指向window对象
setTimeout不止两个参数,后面的参数可作为回调参数的入参
所谓的立即执行 0
HTML5中已经将最小执行时间统一为4ms
setInterval
实现与settimeout大体一致,只是该方法多了重复执行的过程
setImmediate
内部由链表实现
process.nextTick
内部由数组实现,时间复杂度为O(1)
优先级对比
同步代码(包括promise的构造函数) -> promise.then -> setTimeout ,
实际上promise.then内部会根据系统来判断,若系统支持setImmediate则直接执行该函数,否则执行process.nextTick
0 条评论
下一页