js补习知识(一)

promise

  1. 回调地狱-多层回调函数的相互嵌套,就形成了回调地狱,为解决它,es6新增Promise
  • 耦合性太强,难以维护,大量冗余代码,可维护性差
setTimeout(()=>{
	console.log('延时1秒后输出')
    setTimeout(()=>{
    	console.log('延时2秒后输出')
    	setTimeout(()=>{
        console.log('延时3秒后输出')
      },3000)
    },2000)
},1000)
  1. Promise是一个构造函数,new出来的Promise实例对象,代表一个异步操作;promise.prototype上包含一个.then()方法
const p=new Promise()
//p.then(成功的回调函数,失败的回调函数)成功函数必选,失败函数可选
p.then(result=>{},error=>{})
  1. 通过.then()方法的链式调用,解决回调地狱的问题
  2. 通过.catch()方法捕获错误,防止.then()方法链式调用导致的后续无法执行
  3. 通过.all()方***发起并行的Promise异步操作,等所有异步操作(按顺序)执行之后才会开启下一步的.then()操作
  4. 通过.race()方***发起并行的Promise异步操作,只要任何一个异步操作完成就执行下一个.then()操作(赛跑机制)
  5. async/await简化promise异步操作
  • 如果使用了await,function必须被async修饰
  • 在async方法中,第一个await之前的代码会同步执行,await之后的代码会异步执行
const p=new Promise()
async function getall(){
	const r=await p()
    return r
}

EventLoop

  1. 为防止耗时任务导致程序假死,js把待执行任务分为两类
  • 同步任务,又称非耗时任务,在主线程上排队执行
  • 异步任务,又称耗时任务,js委托给宿主环境执行,执行完成后js主线程执行该异步任务的回调函数 2.eventloop概念 alt

宏任务和微任务

  1. 宏任务
  • 异步Ajax请求
  • setTimeout、setInterval
  • 文件操作
  • 其他
  1. 微任务
  • Promise.then、.catch和.finally
  • process.nextTick
  • 其他微任务 alt
  1. 执行顺序 alt

API接口示例

  1. 搭建项目基本结构
  2. 创建基本服务器
  3. 创建db数据库操作模块
  4. 创建业务模块
  5. 创建路由模块
全部评论

相关推荐

(黑话警告⚠️:hc=岗位数量, mt=导师, ld=直属领导, cr=代码审查)25年1月,我加入了字节某前端团队,并期望能在这里待到秋招并尝试转正。然而,就在上周,ld 找我1v1,告诉我,我的能力和团队预期不太匹配,并和我劝退。晴天霹雳吗?肯定是有的。那一刻,脑子里嗡嗡作响,各种情绪翻涌。但冷静下来想想,这几个月,自己在能掌控的范围内,确实有不少地方做得不尽如人意。所以,我想把这段不算成功的经历复盘一下,希望能给同样在努力转正的你提个醒,避开我踩过的坑。一、ld 的要求要注意刚进组时,ld就和我聊过转正的事。我当时发问:“咱们这儿有hc 吗?” ld没直接回答,只是说:“看能力,能力到了...
牛客上的彭于晏:过来人告诉你,入职后要做的第一件事儿不是说主动找活儿做,你要先学会融入团队,摸清ld的性格,投其所好。然后才是展示你的能力,能力上可以说技术或者业务,以业务能力为主,技术能力为辅。优先保证自己对业务需求的开发保证质量效率,然后再谈技术的问题,不要你觉得啥啥啥不行就想着整体优化了(发现校招生最喜欢干这事儿),我工作快5年了发现搞这种的最后都没啥好的结果,产出没有还引入新的bug,校招或者实习的水平看到的问题别人看不到嘛?为什么别人不去搞?浪费时间还没收益的事儿不要去做,技术上的能力体现在对于一个新需求,在不符合现在业务发展的架构设计上,你能拿出好的技术方案同时能考虑到后续业务发展逐渐将技术架构引入合理的架构,这是一个漫长的过程而不是一次性的
点赞 评论 收藏
分享
05-20 13:59
门头沟学院 Java
米黑子米黑子:你这个成绩不争取下保研?
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务