ajax遇到问题:

      1、容易造成回调地狱:嵌套太多。

      2、让异步的代码有同步的性能。

      promise就是解决以上两个问题的

 

promise的三种状态:

          1、Pending(未完成)可以理解为Promise对象实例创建时候的初始状态

          2、Resolved(成功) 可以理解为成功的状态(经常使用)

          3、Rejected(失败) 可以理解为失败的状态

promise的静态方法:

          A、Promise.all([p1,p2,p3...]) 将多个Promise实例,包装成一个新的Promise实例

              a、所有参数中的promise状态都为resolved是,新的promise状态才为resolved

              b、只要p1、p2、p3..之中有一个被rejected,新的promise的状态就变成rejected

          B、Promise.race([p1,p2,p3...]) // 竞速,完成一个即可

promise的使用:

       <script>

        let p1 = new Promise(function (resolved, rejected) {

        //成功的回调resolved;失败的回调:rejected

        resolved(666);//成功的回调的入口

        // rejected();

        });

        // p1.then(function() {//成功的回调

        // console.log('成功了,执行这里');

        // },function() {//失败的回调

        // console.log('失败了,执行这里');

        // });

        //拿到异步的数据,传到外面执行,就可以解决嵌套太多的问题,解决回调地狱

        p1.then(function (data) {//如果只写一个回调,就是成功的回调

          console.log(data);//形参

        });

          // p1.catch(function() {//失败的回调

          // console.log('失败的回调');

          // });

        </script>

 

posted on 2019-07-03 09:13  熊顶顶  阅读(111)  评论(0编辑  收藏  举报