promise
- 回调地狱-多层回调函数的相互嵌套,就形成了回调地狱,为解决它,es6新增Promise
 
setTimeout(()=>{
	console.log('延时1秒后输出')
    setTimeout(()=>{
    	console.log('延时2秒后输出')
    	setTimeout(()=>{
        console.log('延时3秒后输出')
      },3000)
    },2000)
},1000)
- Promise是一个构造函数,new出来的Promise实例对象,代表一个异步操作;promise.prototype上包含一个.then()方法
 
const p=new Promise()
//p.then(成功的回调函数,失败的回调函数)成功函数必选,失败函数可选
p.then(result=>{},error=>{})
- 通过.then()方法的链式调用,解决回调地狱的问题
 
- 通过.catch()方法捕获错误,防止.then()方法链式调用导致的后续无法执行
 
- 通过.all()方***发起并行的Promise异步操作,等所有异步操作(按顺序)执行之后才会开启下一步的.then()操作
 
- 通过.race()方***发起并行的Promise异步操作,只要任何一个异步操作完成就执行下一个.then()操作(赛跑机制)
 
- async/await简化promise异步操作
 
- 如果使用了await,function必须被async修饰
 
- 在async方法中,第一个await之前的代码会同步执行,await之后的代码会异步执行
 
const p=new Promise()
async function getall(){
	const r=await p()
    return r
}
EventLoop
- 为防止耗时任务导致程序假死,js把待执行任务分为两类
 
- 同步任务,又称非耗时任务,在主线程上排队执行
 
- 异步任务,又称耗时任务,js委托给宿主环境执行,执行完成后js主线程执行该异步任务的回调函数
2.eventloop概念

 
宏任务和微任务
- 宏任务
 
- 异步Ajax请求
 
- setTimeout、setInterval
 
- 文件操作
 
- 其他
 
- 微任务
 
- Promise.then、.catch和.finally
 
- process.nextTick
 
- 其他微任务

 
- 执行顺序

 
API接口示例
- 搭建项目基本结构
 
- 创建基本服务器
 
- 创建db数据库操作模块
 
- 创建业务模块
 
- 创建路由模块