promise使用方法

1 篇文章 0 订阅

Promise

Promise的好处:解决异步编程,解决回调地狱的问题,具有可读性

1.链式编程
 new Promise((resove,reject)=>{
        setTimeout(function(){
          resove()
        },1000)
      }).then(()=>{
        console.log('123')
        console.log('123')
        console.log('123')
        console.log('123')
      }).then(()=>{
        new Promise((resove,reject)=>{
          setTimeout(function(){
            resove()
          },1000)
        }).then(()=>{
          console.log('234')
          console.log('234')
          console.log('234')
          console.log('234')
          console.log('234')
        }).then(()=>{
        new Promise((resove,reject)=>{
          setTimeout(()=>{
            resove()
          },1000)
        }).then(()=>{
          console.log('345')
          console.log('345')
          console.log('345')
          console.log('345')
          console.log('345')
        })
      })
      })
2.处理异步
// new Promise((resove,reject)=>{
      //   setTimeout(()=>{
      //     resove('aaa')
      //   },1000)
       
      // }).then(res=>{
      //   console.log(res,'第一次') 
      //    return new Promise(resove=>{
      //     resove(res +'123')
      //   })
      // }).then(res=>{
      //   console.log(res,'第二次') 

      //   return new Promise(resove=>{
      //     resove(res + '234')
      //   })
      // }).then(res=>{
      //           console.log(res,'第三次') 
      //           return new Promise(resove=>{
      //             resove(res + '345')
      //           })


      // }).then(res=>{
      //       console.log(res,'第四次') 

      // })
      //链式编程 二次优化
      // new Promise((resolve,reject)=>{
      //   setTimeout(function(){
      //     resolve('aaa')
      //   },1000)
      // }).then(res=>{
      //   console.log(res ,'第一次')
      //   return Promise.resolve(res + '111')
      // }).then(res=>{
      //   console.log(res,'第二次')
      //           return Promise.resolve(res + '222')

      // }).then(res=>{
      //   console.log(res,'第三次')
      //                   return Promise.resolve(res + 		'333')

      // }).then(res=>{
      //   console.log(res,'第四次')
      // })
      //最终优化
      new Promise((resolve,reject)=>{
        setTimeout(()=>{
            resolve('aaa')
          })
      }).then(res=>{
        console.log(res,'第一次')
        return res + '111' 
      }).then(res=>{
        console.log(res,'第二次')
        return res+'222'
      }).then(res=>{
        console.log(res,'第三次')
        return res+'333'
      }).then(res=>{
        console.log(res)
      })

3.异步需求

 //需求两个异步请求完成后 再去 请求第三个请求
    getAsync(){
      // Promise.all里面传的是一个数组
    //  Promise.all([
    //    new Promise((resolve,reject)=>{
    //      setTimeout(()=>{
    //        resolve('result1')
    //      })
    //    }),
    //     new Promise((resolve,reject)=>{
    //      setTimeout(()=>{
    //        resolve('result2')
    //      })
    //    })
    //  ]).then(res=>{
    //    console.log(res) //[result1,result2]
    //  })

     let result = new  Promise((resolve,reject)=>{
       setTimeout(()=>{
         resolve('result')
       },1000)
     })
     let result1 = new  Promise((resolve,reject)=>{
       setTimeout(()=>{
         resolve('result1')
       },1000)
     })
     Promise.all([result,result1]).then(res=>{
       console.log(res)//[result,result1]
     })
    },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呵呵的牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值