详解ES7的async及webpack配置async

本文探讨了在项目中实现视频下载需求时如何使用Promise和async进行流程控制。通过async函数和await命令,可以优雅地处理串联下载任务。在React+Webpack环境中配置async时,需要安装相关依赖并修改webpack配置。同时,文章详细解释了async函数的返回值、await的使用以及错误处理策略。
摘要由CSDN通过智能技术生成

项目中有个需求,类似视频网站下载视频,比如有5个case,每个case有数量不等的的video需要从服务端下载,并且video的下载顺序是串联的,只有当正在下载的case下载完才能下载另外一个case,否则下一个case处于wait状态。

如何解决此问题

  • 使用Promise
    利用promise的then方法,但是因为无法确定每个case的video的数量,导致不能确定后面应该接几个then,最开始想到一个笨方法,列一个表格把所有可能的video数量都列出来(因实际需求每个case不会超过10个video),然后去套用不同的方法,
function downVideoSeries(n) {
  if(n === 1) {
    return new Promise((resolve, reject) =>{
      //ajax code for one video
    }).then((resolve)=>{
      ...
    }).catch((err)=>{
      ...
    })
  }else if(n ===2) {
    return new Promise((resolve, reject) =>{
      //ajax code for one video
    }).then((resolve)=>{
      new Promise((resolve, reject) =>{
        //ajax code for another video
      })
    }).then((resolve)=>{
      ...
    }).catch((err)=>{
      ...
    })
  }
  ...
}

后经重新查看Promise,可以发现能构造一个空的Promise来解决问题,动画一帧帧执行的代码

function chainAnimationsPromise(elem, animations) {
   

  // 变量ret用来保存上一
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值