前端异步流程工具
- Promise √
- Generator函数
- Async函数 √
- Async的底层就是generator函数
- Async的关键字需要搭配await使用
- Async也是Promise函数可以调用then的方法
格式:
const a=Async()=>{
await 任务
}
var obj = {
async aa () {
await 任务
}
}
注意: 只有await后面的任务 顺利执行完成,那么下面的任务才会去执行,如果await后面的任务执行不顺利, 那么后面的任务会出问题??
使用场景: 先进行数据请求,得到数据之后,在去操作这个数据 ,这个时候,我们的async就是首选
- Node.js 提供的
Node.js提供的两个方法:
1. nextTick
2. setimmediate
总结:
nextTick()的回调函数执行的优先级要高于setImmediate();
process.nextTick()属于idle观察者,setImmediate()属于check观察者.在每一轮循环检查中,idle观察者先于I/O观察者,I/O观察者先于check观察者.
- idle观察者,也就是事件轮询最先进行的任务
- I/O观察者, 也就是事件轮询中的任务(任务中的回调函数)
- check观察者 事件轮询中的任务的结束
在具体实现上,process.nextTick()