JS多个异步请求 按顺序执行next实现解析

 更新时间:2019年09月16日 09:57:51   作者:muamaker  
这篇文章主要介绍了js多个异步请求 按顺序执行next实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

在js里面,偶尔会遇见需要多个异步按照顺序执行请求,又不想多层嵌套,,这里和promise.all的区别在于,promise或者Jquery里面的$.when 是同时发送多个请求,一起返回,发出去的顺序是一起;这里是按照顺序发请求

首先创建一个迭代器,接收任意多个函数参数

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);
      } 
    } 

创建多个异步的函数,注入到迭代器中

/*
     comm:多个函数,公用的变量
     next:调用下一个函数
     * */
    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');
    }
//开始执行迭代
nextRegister(fn1,fn2,fn3);

在这里,fn1-fn3函数中,做异步操作,知道在异步成功的时候调用next()就可以继续执行下一个函数,同时可以将前面函数返回的结果,绑定在comm上,带到下一个函数中

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • JavaScript中对象的不同创建方法

    JavaScript中对象的不同创建方法

    js对象与一般的面向对象的程序设计语言有所不同的。js中的对象是基本原型的。下面给大家介绍js中对象的不同创建方法,非常不错,感兴趣的朋友一起学习吧
    2016-08-08
  • 探究一道价值25k的蚂蚁金服异步串行面试题

    探究一道价值25k的蚂蚁金服异步串行面试题

    这篇文章主要介绍了探究一道价值25k的蚂蚁金服异步串行面试题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • js如何读取csv内容拼接成json

    js如何读取csv内容拼接成json

    这篇文章主要介绍了js如何读取csv内容拼接成json,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • 16个最流行的JavaScript框架[推荐]

    16个最流行的JavaScript框架[推荐]

    这篇文章列举了当下最流行的16个 JavaScript 框架,既包含 jQuery 和 Mootools 等常规框架,也有Zepo这种支持智能手机触摸功能的移动JavaScript框架,如果你有更好的框架推荐,欢迎与我们分享。
    2011-05-05
  • JavaScript使用Promise实现并发请求数限制

    JavaScript使用Promise实现并发请求数限制

    本文主要介绍了JavaScript使用Promise实现并发请求数限制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 基于JS实现01支付后的10秒倒计时

    基于JS实现01支付后的10秒倒计时

    这是一个通过js实现的支付后的页面,点击支付会跳出一个弹窗,提示你是否要确定支付,确定后进入付后界面,该页面有着10秒倒计时,计时结束后便会返回原界面,也可以选择立刻返回,来返回主页面,这篇文章主要介绍了基于JS实现01支付后的10秒倒计时,需要的朋友可以参考下
    2023-03-03
  • PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)

    PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)

    PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)...
    2007-08-08
  • 如何在webpack项目中调试loader插件

    如何在webpack项目中调试loader插件

    最近在学习webpack,本文主要介绍了loader插件的调试方法,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • 关于微信公众号开发无法支付的问题解决

    关于微信公众号开发无法支付的问题解决

    这篇文章主要介绍了关于微信公众号开发无法支付的问题解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • 用canvas 实现个图片三角化(LOW POLY)效果

    用canvas 实现个图片三角化(LOW POLY)效果

    这篇文章主要介绍了用canvas 实现个图片三角化(LOW POLY)效果 的相关资料,需要的朋友可以参考下
    2016-02-02

最新评论