es6新增了symbol这个数据类型,我理解为它是一个独一无二的,和谁都不相等,让我们对这个数据类型有了更深入的一个理解,
generator是解决异步的一种方案,它的一个特别之处就是在函数后面有个号function Fn(){},里面有yield,yield我们可理解为是暂停后面数据的执行,只能通过next()手动调用来执行后面的数据。
function* fn (){
//yield可理解是一个暂停操作
yield 1
yield 222
return '结果'
}
let g1=fn()
//只能通过手动调用
let g2= g1.next()
let g3 =g1.next()
let g4 =g1.next()
console.log(g2)
在没有执行到return结果时候,返回的done是false,例如{value: 1, done: false},执行到return时候,done会变为true{value: ‘结果’, done: true},
下午呢,也是说到了js方法的async、await和pormise, async和await我的理解呢,就是处理一些异步的问题,需要配合函数一起使用,await需要等到上面数据解析完成,才会执行await的数据; 只要通过.then()来接受数据的,通过await都可以实现,但是await必须配合async函数存在;
function Fn() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("好好学习")
}, 3000);
})
}
async function Fn2() {
let result = await Fn()
return result
}
Fn2().then((res)=>{
console.log(res)
})
console.log('JavaScript')
//执行结果 JavaScript 三秒后输出 好好学习
await可接受任意类型的数据,一般是promise
pormise解决回调地狱的,因为请求接口时候,难免会遇到层层的嵌套,可能会产生回调地狱, pormise的状态呢有三种,pending初始,fulfilled成功,rejected失败,状态值一旦改变,无法再变,
pormise的api有:promise.then()成功的处理,promise.catch()失败的处理,promise.all(),全部成功后才返回, promise.race()请求多个接口时候,谁先请求完,谁先执行,没有固定的顺序