ES6(二)
2019-02-21 本文已影响0人
红笔黑字
1. Promise
Promise—解决异步操作(内部没变)
同步-串行 简单、方便
异步-并发 性能高、体验好
1.1 Promise的使用
图片.png以上是完整版,以下是简版
图片.png
1.2 Promise.all的使用
图片.png从上面可以看出,如果其中有一个失败,可能导致整个失败
同时,如果返回的数据相关联的,也不能用promise,它不能处理复杂的逻数据
简版:
图片.png
2. generator
生成器/生成器函数
2.1 generator基本写法
需要next一步步调用,每次next后会暂停
function *show2() {
alert('aaa');
yield;
alert('bbbb')
}
let gen=show2();
gen.next();
gen.next();
2.2 yeild
1.具有参数
2.可以return返回
function* show2() {
alert('aaa');
let a=yield;
alert('bbbb'+a)
}
let gen=show2();
gen.next();
gen.next(12);
//接收参数,是在yeild之后,所以在第二个next传参
function* show2() {
alert('aaa');
yield 55;
alert('bbbb');
return 10
}
let gen=show2();
let res1=gen.next();console.log(res1);//{value: 55, done: false}
let res2=gen.next();console.log(res2);//{value: 10, done: true}
//不加return,res2的value就是undefined
2.3 generator和Promise配合使用
3 async
和generator类似,不同点:
1.写法:async开头,无*,
2.await和yeild类似,但是不异步会直接输出
3.不用next
async function show() {
alert('a');
await 12;
alert('b');
}
show();