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中使用monk访问mongodb
Jul 06 NodeJs
用nodejs的实现原理和搭建服务器(动态)
Aug 10 NodeJs
Nodejs进阶:核心模块net入门学习与实例讲解
Nov 21 NodeJs
Nodejs+Socket.io实现通讯实例代码
Feb 13 NodeJs
nodejs个人博客开发第四步 数据模型
Apr 12 NodeJs
nodeJS实现简单网页爬虫功能的实例(分享)
Jun 08 NodeJs
详解HTTPS 的原理和 NodeJS 的实现
Jul 04 NodeJs
nodejs同步调用获取mysql数据时遇到的大坑
Mar 02 NodeJs
通过Nodejs搭建网站简单实现注册登录流程
Jun 14 NodeJs
nodejs和react实现即时通讯简易聊天室功能
Aug 21 NodeJs
nodejs使用Sequelize框架操作数据库的实现
Oct 21 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/06/05 PHP
php判断linux下程序问题实例
2015/07/09 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
兼容FireFox 的 js 日历 支持时间的获取
2009/03/04 Javascript
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
jquery如何改变html标签的样式(两种实现方法)
2013/01/16 Javascript
javascript版的in_array函数(判断数组中是否存在特定值)
2014/05/09 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
用nodejs搭建websocket服务器
2017/01/23 NodeJs
基于代数方程库Algebra.js解二元一次方程功能示例
2017/06/09 Javascript
Angular5.0 子组件通过service传递值给父组件的方法
2018/07/13 Javascript
原生JS实现手动轮播图效果实例代码
2018/11/22 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
[04:00]黄浦江畔,再会英雄——完美世界DOTA2 TI9应援视频
2019/07/31 DOTA
Python实现的彩票机选器实例
2015/06/17 Python
Django实现的自定义访问日志模块示例
2017/06/23 Python
PyTorch预训练的实现
2019/09/18 Python
Python 3.8正式发布重要新功能一览
2019/10/17 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
2020/04/26 Python
如何使用python切换hosts文件
2020/04/29 Python
python属于软件吗
2020/06/18 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
美国优质马术服装购买网站:Breeches.com
2019/12/16 全球购物
学习十八大报告感言
2014/02/28 职场文书
男女朋友协议书
2014/04/23 职场文书
西湖英语导游词
2015/02/06 职场文书
2015年度村委会工作总结
2015/04/29 职场文书
劳动争议仲裁代理词
2015/05/25 职场文书
行政处罚事先告知书
2015/07/01 职场文书
嘉年华活动新闻稿
2015/07/17 职场文书
2016新年感言
2015/08/03 职场文书
初中教务主任竞聘演讲稿(范文)
2019/08/20 职场文书
Python语言规范之Pylint的详细用法
2021/06/24 Python