详解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用来保存上一
各个插件配置设置单独配置: ls bundle/.configs/ : asyncrun.vim_conf.vim EasyMotion_conf.vim lookupfile_conf.vim supertab_conf.vim vim-markdown-toc_conf.vim bufexplorer_conf.vim eclim_conf.vim maximizer_conf.vim syntastic_conf.vim vim-powerline_conf.vim CCTree_conf.vim errormarker.vim_conf.vim neocomplcache_conf.vim tagbar_conf.vim vimshell.vim_conf.vim CompleteParameter.vim_conf.vim fuzzyfinder_conf.vim neocomplete.vim_conf.vim ultisnips_conf.vim vim-snippets_conf.vim deoplete-jedi_conf.vim grep.vim_conf.vim neosnippet_conf.vim unite.vim_conf.vim ydtrans_conf.vim deoplete.nvim_conf.vim init.vim nerdcommenter_conf.vim vcscommand_conf.vim YouCompleteMe_conf.vim DoxygenToolkit.vim_conf.vim jedi-vim_conf.vim nerdtree_conf.vim VimIM_conf.vim DrawIt_conf.vim jupyter-vim_conf.vim Nvim-R_conf.vim vim-instant-markdown_conf.vim 在vimrc文件进行基础配置: let mapleader="," let g:mapleader="," autocmd! :mapclear "==========很多插件,可能进行过修改, 若感觉不爽,可以在.vim搜索lidong, 进行还原=================== +-- 11 lines: 插件依赖设置 ---------------------------------------------------------------------------------- source ~/.vim/bundle/.configs/init.vim +--104 lines: F1~F12快捷键映射------------------------------------------------------------------------------- +-- 22 lines: 非F1~F12快捷键--------------------------------------------------------------------------------- +-- 5 lines: 自己定义的命令 -------------------------------------------------------------------------------- +-- 17 lines: 窗口配置--------------------------------------------------------------------------------------- +--229 lines: 简单配置--------------------------------------------------------------------------------------- +-- 55 lines: Gui选项 放到.gvimrc---------------------------------------------------------------------------- +-- 5 lines: 高亮 注释代码的颜色---------------------------------------------------------------------------- +-- 6 lines: 高亮 menu color ------------------------------------------------------------------------------- +-- 7 lines: 高亮 当前行(列)-------------------------------------------------------------------------------- +-- 3 lines: 高亮列----------------------------------------------------------------------------------------- +-- 13 lines: 高亮tab标签------------------------------------------------------------------------------------ +-- 8 lines: 高亮 其他-------------------------------------------------------------------------------------- +-- 10 lines: 字符编码(多字节)------------------------------------------------------------------------------- +-- 12 lines: 设置C/C++语言的具体缩进方式 eg. switch case 缩进----------------------------------------------- +-- 42 lines: vim折叠功能------------------------------------------------------------------------------------ +-- 19 lines: 文件比较--------------------------------------------------------------------------------------- +-- 26 lines: 单词列表匹配-----------------------------------------------------------------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值