vue下使用es6的Promise构造函数,实现函数的异步操作执行的成功及失败的回调

vue下使用es6的Promise构造函数,实现函数的异步操作执行的成功及失败的回调避免函数的层层嵌套

/修改run_a的一步操作可能存在拒绝状态
    function run_a(){
        return new Promise(function(resolve, reject){
            setTimeout(function(){
                if(Math.random()>.5){
                    resolve("step1");
                }else{
                    reject("error");
                }
            },1000);
        });
    }

    //这样做不会中断
    run_a().then(function(data){
        return run_b(data);
    },function(data){
        //如果是这样处理rejected状态,并不会中断调用链
        return data;
    }).then(function(data){
        return run_c(data);
    }).then(function(data){
        console.log(data);
    });

    //在调用链的末尾加上catch方法,当某个环节的Promise的异步处理出错时,将中断其后的调用,直接跳到最后的catch
    run_a().then(function(data){
        return run_b(data);
    }).then(function(data){
        return run_c(data);
    }).then(function(data){
        console.log(data);
    }).catch(function(e){
        //rejected的状态将直接跳到catch里,剩下的调用不会再继续
        console.log(e);
    });

 

 

 

 

使用 async / await, 搭配 promise, 可以通过编写形似同步的代码来处理异步流程, 提高代码的简洁性和可读性.

使用 async function 可以定义一个 异步函数, 语法为:

async function name([param[, param[, ... param]]]) { statements }
async 函数的返回值很特殊: 不管在函数体内 return 了什么值, async 函数的实际返回值总是一个 Promise 对象
 

 参考:https://blog.csdn.net/juhaotian/article/details/78934097

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值