Promise初步详解

// resolve的用法

var p = new Promise(function(resolve,reject){
      var timer = setTimeout(function(){
        console.log("执行操作1")
        resolve("这是数据1")
      },1000)
    })
    p.then(function(data){
      console.log(data)
      console.log("这是成功操作")
    })

// reject的用法

var p = new Promise(function(resolve,reject){
      let flag = true
      if(flag){
        resolve("这是数据2")
      }else {
        reject("这是数据1")
      }
    })
    p.then(function(data){
      console.log(data)
      console.log("这是成功的操作")
    },function(data){
      console.log(data)
      console.log("这是失败的操作")
    })

//catch方法

var p = new Promise(function(resolve,reject){
      let flag = false
      if(flag){
        resolve("这是成功的数据")
      }else {
        reject("这是失败的数据")
      }
    })
    p.then(function(data){
      console.log(data)
      console.log("执行成功方法")
    }).catch(function(err){
      console.log(err)
      console.log("执行失败的方法")
    })

//这样嵌套有点多

 setTimeout(function () {
          console.log('我');
          setTimeout(function () {
              console.log('爱');
              setTimeout(function () {
                  console.log('米');
                  setTimeout(function () {
                      console.log('饭');
                  }, 1000);
              }, 1000);
          }, 1000);
      }, 1000);

//使用Promise去实现这个效果

 function getStr1(){
    return new Promise(function(resolve,reject){
      setTimeout(function(){
        resolve("我")
      },1000)
    })
  }
  function getStr2(){
    return new Promise(function(resolve,reject){
      setTimeout(function(){
        resolve("爱")
      },1000)
    })
  }
  function getStr3(){
    return new Promise(function(resolve,reject){
      setTimeout(function(){
        resolve("大")
      },1000)
    })
  }
  function getStr4(){
    return new Promise(function(resolve,reject){
      setTimeout(function(){
        resolve("米")
      },1000)
    })
  }
  getStr1().then(function(data){
    console.log(data)
    return getStr2()
  }).then(function(data){
    console.log(data)
    return getStr3()
  }).then(function(data){
    console.log(data)
    return getStr4()
  }).then(function(data){
    console.log(data)
  })

猜你喜欢

转载自blog.csdn.net/u012687612/article/details/111661818