亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JS多個(gè)異步請求 按順序執(zhí)行next實(shí)現(xiàn)解析

 更新時(shí)間:2019年09月16日 09:57:51   作者:muamaker  
這篇文章主要介紹了js多個(gè)異步請求 按順序執(zhí)行next實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

在js里面,偶爾會遇見需要多個(gè)異步按照順序執(zhí)行請求,又不想多層嵌套,,這里和promise.all的區(qū)別在于,promise或者Jquery里面的$.when 是同時(shí)發(fā)送多個(gè)請求,一起返回,發(fā)出去的順序是一起;這里是按照順序發(fā)請求

首先創(chuàng)建一個(gè)迭代器,接收任意多個(gè)函數(shù)參數(shù)

function nextRegister(){
      var args = arguments;
      var count = 0;
      var comm = {};
      function nextTime(){
        count++;
        if(count < args.length){
          if(args[count] && Object.prototype.toString.call(args[count]) == '[object Function]'){
            args[count](comm,nextTime);
          }
        }
      }
      if(args[count] && Object.prototype.toString.call(args[count]) == '[object Function]'){
        args[count](comm,nextTime);
      } 
    } 

創(chuàng)建多個(gè)異步的函數(shù),注入到迭代器中

/*
     comm:多個(gè)函數(shù),公用的變量
     next:調(diào)用下一個(gè)函數(shù)
     * */
    function fn1(comm,next){
      console.log('1');
      comm.age = 20;
      next();
    }
    function fn2(comm,next){
      next();
      console.log('2');
      console.log(comm.age);
    }
    function fn3(comm,next){
      console.log('3');
    }
//開始執(zhí)行迭代
nextRegister(fn1,fn2,fn3);

在這里,fn1-fn3函數(shù)中,做異步操作,知道在異步成功的時(shí)候調(diào)用next()就可以繼續(xù)執(zhí)行下一個(gè)函數(shù),同時(shí)可以將前面函數(shù)返回的結(jié)果,綁定在comm上,帶到下一個(gè)函數(shù)中

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論