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