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读取memcache示例分享
Jan 02 NodeJs
NodeJS学习笔记之Http模块
Jan 13 NodeJs
NodeJS学习笔记之(Url,QueryString,Path)模块
Jan 13 NodeJs
NodeJS和BootStrap分页效果的实现代码
Nov 07 NodeJs
Highcharts+NodeJS搭建数据可视化平台示例
Jan 01 NodeJs
Nodejs多站点切换Htpps协议详解及简单实例
Feb 23 NodeJs
简单好用的nodejs 爬虫框架分享
Mar 26 NodeJs
nodejs个人博客开发第三步 载入页面
Apr 12 NodeJs
NodeJS搭建HTTP服务器的实现步骤
Oct 12 NodeJs
5分钟教你用nodeJS手写一个mock数据服务器的方法
Sep 10 NodeJs
nodeJs项目在阿里云的简单部署
Nov 27 NodeJs
详解NodeJS模块化
Jun 15 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 Notice: Undefined index 错误提示解决方法
2010/08/29 PHP
利用jQuery接受和处理xml数据的代码(.net)
2011/03/28 Javascript
jQuery EasyUI API 中文文档 - Tree树使用介绍
2011/11/19 Javascript
javascript加号"+"的二义性说明
2013/03/04 Javascript
js文件缓存之版本管理详解
2013/07/05 Javascript
document.getElementBy("id")与$("#id")有什么区别
2013/09/22 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
js实现图片无缝滚动特效
2020/03/19 Javascript
javascript实现随机显示星星特效
2016/01/28 Javascript
用JS实现轮播图效果(二)
2016/06/26 Javascript
AngularJS基础 ng-non-bindable 指令详细介绍
2016/08/02 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
2016/12/31 Javascript
利用jsonp与代理服务器方案解决跨域问题
2017/09/14 Javascript
使用layui 的layedit定义自己的toolbar方法
2019/09/18 Javascript
VSCode 添加自定义注释的方法(附带红色警戒经典注释风格)
2020/08/27 Javascript
python引用DLL文件的方法
2015/05/11 Python
在Python的Django框架中创建和使用模版
2015/07/15 Python
python并发编程之线程实例解析
2017/12/27 Python
使用TensorFlow实现简单线性回归模型
2019/07/19 Python
Python使用jupyter notebook查看ipynb文件过程解析
2020/06/02 Python
Python3爬虫关于代理池的维护详解
2020/07/30 Python
一个精品风格的世界:Atterley
2019/05/01 全球购物
Java中实现多态的机制
2015/08/09 面试题
优秀团员自我评价范文
2014/04/23 职场文书
小学生田径运动会广播稿
2014/09/11 职场文书
科级干部群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
住宿生擅自离校检讨书
2014/09/22 职场文书
杭白菊导游词
2015/02/10 职场文书
教学督导岗位职责
2015/04/10 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
开发一个封装iframe的vue组件
2021/03/29 Vue.js
Java数据结构之链表相关知识总结
2021/06/18 Java/Android
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript
Elasticsearch 配置详解
2022/04/19 Java/Android
uniapp 微信小程序 自定义tabBar 导航
2022/04/22 Javascript