优质网站建设在哪里百度app下载并安装最新版
- 作用:异步问题同步化解决方案,解决回调地狱、链式操作
 - 原理: 
- 状态:pending、fufilled reject
 - 构造函数传入一个函数,resolve进入then,reject进入catch
 - 静态方法:resolve reject all any react
 
 
new Promise((resolve, reject) => {})
.catch(e => e)
.then(res => {}).finally()// 全部满足走then,err是最前的一个reject
Promise.all([p1(), p2,() p3()])
.then(([r1, r2, r3]) => {})
.catch(err => {})// 全部不满足走catch,value是最前的一个resovle, err是一段文本全部错误
Promise.any([p1(), p2,() p3()])
.then(value => {})
.catch(err => {})// p1、p2、p3谁的计算速度最快(慢的那些不管)  最快的resolve走then,reject走catch
Promise.race([p1(), p2,() p3()])
.then(value => {})
.catch(err => {})	  
 
-  
缺点:一旦执行将无法终止;处于pending状态,无法得知目前进展哪个阶段
 -  
Primise本身就是同步,只是then或catch触发异步操作
 -  
Generator:
- 是一个可以暂停和继续执行的函数;
 - 包含两部分:函数名前加 *;函数内用yield关键字返回值
 
 -  
async await
- 遵循Generator函数的语法糖,async对应* await对应yield
 - async是加载函数钱的修饰符,声明一个异步函数,返回一个Promise对象
 - await也是一个修饰符,只能放在async定义的函数内,可理解为等待的意思,await紧跟任意表达式
 - 缺点:过多使用await会造成同步阻塞
 
 -  
区别:
- 都是为了解决异步流程的问题,promise是约定,而async更优雅更美观
 - async基于promise实现,不需要处理resolve值。还避免嵌套代码
 - async让try catch可以处理同步和异步错误
 
 
