Promise入门理解

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>
  <body>
    <script>
      var promise = new Promise(
        (resolve, reject) => {
          console.log('promise');
          var num = Math.random()*5;
          setTimeout(() => {
            //自己判断代码返回,小于2我认为成功。既调用resolve,也就是我认为ajax成功了  Resolved
            if(num < 2) resolve(num);
            //同理,我认为失败了调用reject,Promise对象的状态会变成Rejected
            else  reject(num)
          }, 1000);
        }
      );
      promise.then(function(n){
        console.log(`成功了${n}`);
        //同时可以return数据提供给下一个return使用
        return n;
      },function(n){
        console.log(`失败了${n}`);
        //关于return 如果return上一个的数据,下一个then就会接受上一个的数据
        //如果return一个new Promise 既又会在执行一遍异步在进行一次判断
        //如果什么都不写,既相当于得到上一个已经获得了的Promise的实例
        return n;
      }).then(function(n){
        console.log(`失败了${n}`);
      },function(n){
        console.log(`成功了${n}`);
      });

      //promise对象,也就是说将new Promise()时候传入一个function 这个function接受两个参数 一个resolve成功时候回调,一个是rejuct失败拒绝时候的回调
      //即在new Promis()中传入的function中我们写入ajax等异步请求,当异步请求执行完成之后,我们可以根据异步请求返回的结果。通过去判断成功还是失败,如果失败执行rejuct,成功执行resolve
      //then传入两个参数,第一个带表成功时候的回调。第二个代表失败时候的回调。
      //以及关于resolve和rejuct的参数,需要我们自己手动在调用时候传入。比如相应成功获得了一个jsonp为text,就需要在resolve(text)。这样在使用then中第一个函数,我们也可以接收一个text的jsonp。
    </script>
  </body>
</html>

承诺必须完成(返回一个值)或者必须被拒绝(返回一个原因)。承诺完成或被拒绝时(无论哪一个先发生),Promise 对象的 then 方法都会运行。如果承诺成功完成,则将运行 then 方法的履行处理程序函数。如果承诺被拒绝,则将运行 then 方法(或 catch 方法)的错误处理程序函数。
换句话说承诺完成也就是我们在异步操作中调用resolve或者reject任意一个都标志着承诺完成,既根据调用的不同执行then中的不同参数。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值