1 async和await
async
可以作用在任何方法前, 返回值是一个Promise对象(回调函数也可以使用async)
函数内部return的返回值, 会成为then回调函数的参数
async作用的方法,如果内部出现报错,可以被promise的catch方法捕获
常规使用,一般都会通过try catch进行有可能报错的代码处理
await
await只能作用在async修饰的方法中,不能单独使用,如果使用报错:await is only valid in async functions and the top level bodies of modules
await是会阻塞代码执行
正常情况 await后面跟着一个Promise对象; 返回的是Promise对象的成功后结果; 如果是一个普通值,那么会直接返回这个值
reject的返回 await没有办法进行捕获(使用try catch进行捕获)
async&await是Promise和Generator的语法糖
async
let arr = [1,2,3,4,5,6];
console.time("arrFor");
for (let i=0;i<arr.length;i++){
}
console.timeEnd("arrFor");
console.time("arrForEach");
arr.forEach(async (item)=>{
})
console.timeEnd("arrForEach");
let fn1 = async ()=>{
// return
}
console.log(fn1());//undefined //使用async之后返回Promise对象
await
{
let p1 = ()=>{
// return Promise.resolve("hello world")