nodejs使用async模块同步执行的方法


Posted in NodeJs onMarch 02, 2019

首先安装 模块async

nodejs使用async模块同步执行的方法

测试代码:

call.js

exports.fun1 = function (callback) {
 setTimeout(function(){
 console.log('方法1');
 callback('1');
 },1900);
}
exports.fun2 = function (callback) {
 setTimeout(function(){
 console.log('方法2');
 callback('2');
 },1700);
}
exports.fun3 = function (callback) {
 setTimeout(function(){
 console.log('方法3');
 callback('3');
 },1500);
}

test.js:

var async = require('async');
var step = require('step');
var call = require('./call');
call.fun1(function(data){
 console.log(data);
});
call.fun2(function(data){
 console.log(data);
});
call.fun3(function(data){
 console.log(data);
});
console.log('正常执行的方法');

没有使用异步之前,我们调用三个方法期望的结果是:输出:方法1,方法2,方法3,但是node本身异步的机制决定了它不能像其他同步语言一样正常输出,结果输出是以时间花费最少的先执行:结果

nodejs使用async模块同步执行的方法

这就是node的异步机制,我们使用async同步模块进行再次测试

加入代码:

function seriesFunc() {
  async.series([
    function(callback) {
      call.fun1(function(data){
       callback(null,data);
      });
    },
    function(callback) {
      call.fun2(function(data){
       callback(null,data);
      });
    },
    function(callback) {
      call.fun3(function(data){
       callback(null,data);
      });
    }],
    function(error,result) {
      if(error) {
        console.log("error: ",error,"msg: ",result);
      }
      else {
        console.log("方法执行完毕"+result);
      }
    }
  );
} 
seriesFunc();

运行结果是否是我们期望的一次执行呢?

nodejs使用async模块同步执行的方法

结果果然是我们期待的一样,顺序进行执行,node异步的机制就决定了,响应速度快,做web开发的优势。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

NodeJs 相关文章推荐
nodejs 实现模拟form表单上传文件
Jul 14 NodeJs
Windows系统中安装nodejs图文教程
Feb 28 NodeJs
Nodejs获取网络数据并生成Excel表格
Mar 31 NodeJs
NodeJS实现客户端js加密
Jan 09 NodeJs
Nodejs连接mysql并实现增、删、改、查操作的方法详解
Jan 04 NodeJs
nodejs微信扫码支付功能实现
Feb 17 NodeJs
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
Dec 06 NodeJs
NodeJs入门教程之定时器和队列
Mar 08 NodeJs
nodejs log4js 使用详解
May 31 NodeJs
Nodejs中使用puppeteer控制浏览器中视频播放功能
Aug 26 NodeJs
Nodejs实现WebSocket代码实例
May 19 NodeJs
nodejs+express最简易的连接数据库的方法
Dec 23 NodeJs
NodeJS实现同步的方法
Mar 02 #NodeJs
PHPStorm中如何对nodejs项目进行单元测试详解
Feb 28 #NodeJs
Nodejs对postgresql基本操作的封装方法
Feb 20 #NodeJs
深入理解nodejs搭建静态服务器(实现命令行)
Feb 05 #NodeJs
Nodejs实现的操作MongoDB数据库功能完整示例
Feb 02 #NodeJs
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
Feb 02 #NodeJs
用Electron写个带界面的nodejs爬虫的实现方法
Jan 29 #NodeJs
You might like
基于wordpress主题制作的具体实现步骤
2013/05/10 PHP
PHP实现的曲线统计图表示例
2016/11/10 PHP
小议Javascript中的this指针
2010/03/18 Javascript
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
2010/12/25 Javascript
JavaScript高级程序设计 DOM学习笔记
2011/09/10 Javascript
获取服务器传来的数据 用JS去空格的正则表达式
2012/03/26 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
2014/07/02 Javascript
JS回调函数的应用简单实例
2014/09/17 Javascript
jQuery formValidator表单验证
2016/01/07 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
javascript实现标签切换代码示例
2016/05/22 Javascript
jquery获取form表单input元素值的简单实例
2016/05/30 Javascript
jQuery实现的简单在线计算器功能
2017/05/11 jQuery
Angular2 组件通信的实例代码
2017/06/23 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
vue.js的computed,filter,get,set的用法及区别详解
2018/03/08 Javascript
Vue批量图片显示时遇到的路径被解析问题
2019/03/28 Javascript
layui radio单选限制下一个radio单选的实例
2019/09/03 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
layui的面包屑或者表单不显示的解决方法
2019/09/05 Javascript
Element-ui upload上传文件限制的解决方法
2021/01/22 Javascript
Python创建日历实例
2014/08/21 Python
Python实现的下载8000首儿歌的代码分享
2014/11/21 Python
python 打印对象的所有属性值的方法
2016/09/11 Python
Python字符串处理实现单词反转
2017/06/14 Python
利用python实现简单的循环购物车功能示例代码
2017/07/05 Python
Python如何实现小程序 无限求和平均
2020/02/18 Python
python3将变量写入SQL语句的实现方式
2020/03/02 Python
Python新手如何理解循环加载模块
2020/05/29 Python
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
新闻学专业求职信
2014/07/28 职场文书
机关党总支领导班子整改方案
2014/09/20 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
风雨哈佛路观后感
2015/06/03 职场文书
如何书写邀请函?
2019/06/24 职场文书
Redis批量生成数据的实现
2022/06/05 Redis