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 后缀名判断限制代码
Mar 31 NodeJs
Nodejs sublime text 3安装与配置
Jun 19 NodeJs
详解nodejs 文本操作模块-fs模块(五)
Dec 23 NodeJs
Nodejs多站点切换Htpps协议详解及简单实例
Feb 23 NodeJs
nodejs开发——express路由与中间件
Mar 24 NodeJs
Nodejs--post的公式详解
Apr 29 NodeJs
nodejs利用ajax实现网页无刷新上传图片实例代码
Jun 06 NodeJs
Windows下快速搭建NodeJS本地服务器的步骤
Aug 09 NodeJs
nodejs实现超简单生成二维码的方法
Mar 17 NodeJs
nodeJS模块简单用法示例
Apr 21 NodeJs
浅谈vue websocket nodeJS 进行实时通信踩到的坑
Sep 22 NodeJs
分享node.js实现简单登录注册的具体代码
Apr 26 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
php 正则表达式小结
2009/08/31 PHP
php对mongodb的扩展(初出茅庐)
2012/11/11 PHP
IE浏览器PNG图片透明效果代码
2008/09/02 Javascript
Prototype RegExp对象 学习
2009/07/19 Javascript
js中的this关键字详解
2013/09/25 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
弹出最简单的模式化遮罩层的js代码
2013/12/04 Javascript
使用ngView配合AngularJS应用实现动画效果的方法
2015/06/19 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
实现div滚动条默认最底部以及默认最右边的示例代码
2017/11/15 Javascript
node.js多个异步过程中判断执行是否完成的解决方案
2017/12/10 Javascript
swiper自定义分页器使用方法详解
2020/09/14 Javascript
详解js的视频和音频采集
2018/08/09 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
2018/09/21 Javascript
vue里如何主动销毁keep-alive缓存的组件
2019/03/21 Javascript
jQuery层叠选择器用法实例分析
2019/06/28 jQuery
微信小程序反编译的实现
2020/12/10 Javascript
[02:45]DOTA2英雄基础教程 伐木机
2013/12/23 DOTA
[03:23]我的刀塔你不可能这么可爱 第一期金萌萌的故事
2014/06/20 DOTA
Python的函数的一些高阶特性
2015/04/27 Python
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
对python3 urllib包与http包的使用详解
2018/05/10 Python
selenium中get_cookies()和add_cookie()的用法详解
2020/01/06 Python
浅谈django 模型类使用save()方法的好处与注意事项
2020/03/28 Python
为智能设备设计个性化保护套网站:caseable
2017/01/05 全球购物
Expedia印度尼西亚站:预订酒店、廉价航班和度假套餐
2018/01/31 全球购物
.net软件工程师应聘上机试题
2015/03/10 面试题
路政管理专业个人自荐信范文
2013/11/30 职场文书
运动会广播稿200字
2014/01/15 职场文书
考试违纪检讨书
2014/02/02 职场文书
文案策划求职信
2014/03/18 职场文书
旅游与环境专业求职信
2014/06/05 职场文书
写得不错的求职信范文
2014/07/11 职场文书
湘江北去观后感
2015/06/15 职场文书
javascript之Object.assign()的痛点分析
2022/03/03 Javascript
NoSQL优缺点与MongoDB数据库简介
2022/06/05 MongoDB