es6 情况下使用解决异步嵌套地狱

// promise提供传参数和报错

function test1 (value=0, count=0) {
        return new Promise ((resolve, reject) => {
            let num = Math.random()
            // resolve 代表的异步成功回调, reject 代表的是失败
            if (num > 0.3) {
                console.log(num)
                resolve(num + value)
            } else {
                reject({value:(num + value),count:count})
            }
        })
    }

//执行调用会有嵌套地狱

 test1().then(res =>{
        return test1(res, 0)
    }).then(res =>{
        return test1(res, 1)
    }).then(res =>{
        return test1(res, 2)
    }).then(res =>{
        return test1(res, 3)
    }).then(res =>{
        return test1(res, 4)
    }).then(res =>{
        return test1(res, 5)
    }).then(res =>{
        return test1(res, 6)
    }).catch(error => {
        console.log(error, 44)
    })

//在上面也会出现嵌套地狱的问题,代码不够简洁,下面是使用asyn会让代码更加简洁

 function test2 (value=0, count=0) {
        return new Promise ((resolve, reject) => {
            let num = Math.random()
            if (num > 0.3) {
                console.log(num)
                resolve(num + value)
            } else {
                reject({value:(num + value),count:count})
            }
        })
    }
async function aaa () {
        try{
            let req1 = await test2()
            let req2 = await test2(req1, 1)
            let req3 = await test2(req2, 2)
            let req4 = await test2(req3, 3)
            let req5 = await test2(req4, 4)
            let req6 = await test2(req5, 6)
            let req7 = await test2(req6, 6)
            let req8 = await test2(req7, 7)
            let req9 = await test2(req8, 8)
        }catch(e){
            console.log(e)
        }
    }

//执行异步操作 aaa()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值