码迷,mamicode.com
首页 > 其他好文 > 详细

ES6 -async ,await

时间:2018-08-28 14:13:21      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:c函数   class   字符   style   code   resolved   console   generator   函数   

 1.语法:

async function fn(){ //表示异步,这个函数里面有异步任务
    let res=await xx;//表示后面结果需要等待
}

2.特点:

  • await只能放到async函数中

  • 相比generator语义化更强

  • await后面可以是promise对面,也可以数字,字符串等

  • async函数 返回的是一个promise对象

  • 只要await语句后面Promise状态变成reject,那么整个async函数中断执行

 
async function fn(){
    return 123;
}
console.log(fn());//返回promise对象,Promise {<resolved>: 123}

// 获取return值
fn().then(res=>{
    console.log(res);//123
})
// 只要await语句后面Promise状态变成reject,那么整个async函数中断执行
async function fn(){
    await Promise.reject(‘fail‘);
   let a=await Promise.resolve(‘success‘);
   console.log(a);
}


fn().then(res=>{
    console.log(res);
}).catch(err=>{
    console.log(err);//fail
})

3.解决async函数抛出错误,影响后续代码执行

// 1.try catch :
async function fn(){
    try{
        await Promise.reject(‘fail‘);
    }catch(e){

    }
   let a=await Promise.resolve(‘success‘);
   console.log(a);//success
   return 123;
}

fn().then(res=>{
    console.log(res);//123
}).catch(err=>{
    console.log(err);
})
// 2.promise 本身catch

async function fn(){
    await Promise.reject(‘fail‘).catch(err=>{
        console.log(err);//fail
    })
   let a=await Promise.resolve(‘success‘);
   console.log(a);//success
   return 123;
}

fn().then(res=>{
    console.log(res);//123
}).catch(err=>{
    console.log(err);
})

 

ES6 -async ,await

标签:c函数   class   字符   style   code   resolved   console   generator   函数   

原文地址:https://www.cnblogs.com/yuesu/p/9547571.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!