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可以作用在任何方法前, 返回值是一个Promise对象(回调函数也可以使用async) 函数内部return的返回值, 会成为then回调函数的参数


    var lk = async () => {
        return 111
    }
    lk().then(res=>{
        console.log(res);
    })

async作用的方法,如果内部出现报错,可以被promise的catch方法捕获 

    let p1 = new Promise((resolve, reject)=>{
        throw new Error("=报错")
    })
    p1.then(res=>{}).catch(err=>{
        console.log(err)
    })

 解决地狱回调

        function hell(arg) {
            return new Promise((resolve, reject) => {
                setTimeout(() => {
                    var val
                    if (!arg) val = '1'
                    else val = arg
                    resolve(arg + 1)
                }, 1000)
            })
        }
        function fn(arg) {
            return arg + ',' + 'end'
        }
        async function render() {
            var a = await hell('2')//'2'1
            var b = await hell(a)
            var c = await hell(b)
            var d = await fn(c)
            console.log(d)
        }
        render()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值