回调地狱的解决方式

在js新版本出现之前,回调地狱自身就是解决方式
新版本出现之后,在新的语法中,提供了一些更优雅的处理方案

1.Promise(ES6)

原理:

Promise承诺,异步
正在执行时…异步过程
成功
失败

成功或失败虽然是将来才会发生,但是在承诺开始的时刻,就需要提前预置

发生了成功,必然不会执行失败
发生了失败,必然不会执行成功

语法:(语言的法律法规,固定!!!!!)

Promise是一个构造函数
new的同时立即传参,参数是回调函数,回调函数身上可以接受两个参数,分别是:resolve(success,成功),reject(error,失败)

   var p = new Promise(function(a,b){
            // 正在执行....
            // 此处放置异步的程序

            // a就是在then中的第一个回调函数,表示成功要做的事情
            // b就是在catch中的第一个回调函数,表示失败要做的事情
        });
        p.then(function(){
            // 成功的预置函数
        });
        p.catch(function(){
            // 失败的预置函数
        });

总结:

promise就是一种固定语法,固定写法,固定传输
所有的原理都在promise的内部被封装
封装的意义是什么?忽略细节
当然了忽略细节,并不是不关注
而是先会用,再考虑内部原理

Promise的三个状态

1、Pending 异步的事情正在执行
2、Fulfilled 异步的事情成功了
3、Rejected 异步的事情失败了

2.在Promise的基础上,再使用async/await(ES7)

 async function fn(){
        var res1 = await new Promise(....)

        var res2 = await new Promise(....)

        var res3 = await new Promise(....)

        var res4 = await new Promise(....)

        console.log(res1,res2,res3,res4);
    }

总结:promise是用来处理所有的异步的回调地狱,不止是ajax,任何一个异步,只是是回调地狱的调用形式,就可以使用promise改造

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值