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 相关文章推荐
golang、python、php、c++、c、java、Nodejs性能对比
Mar 12 NodeJs
nodejs win7下安装方法
May 24 NodeJs
nodeJS代码实现计算交社保是否合适
Mar 09 NodeJs
nodejs实现获取当前url地址及url各种参数值
Jun 25 NodeJs
浅析Nodejs npm常用命令
Jun 14 NodeJs
nodejs中模块定义实例详解
Mar 18 NodeJs
nodejs服务搭建教程 nodejs访问本地站点文件
Apr 07 NodeJs
nodeJS实现简单网页爬虫功能的实例(分享)
Jun 08 NodeJs
windows系统下更新nodejs版本的方案
Nov 24 NodeJs
nodejs微信开发之接入指南
Mar 17 NodeJs
nodejs实现获取本地文件夹下图片信息功能示例
Jun 22 NodeJs
独立部署小程序基于nodejs的服务器过程详解
Jun 24 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测试硬盘写入速度示例
2014/01/27 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
2014/05/04 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
Discuz!X中SESSION机制实例详解
2015/09/23 PHP
phpcms的分类名称和类别名称的调用
2017/01/05 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
PHP实现简易用户登录系统
2020/07/10 PHP
JavaScript 应用类库代码
2008/06/02 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
IE的事件传递-event.cancelBubble示例介绍
2014/01/12 Javascript
JavaScript 学习笔记之操作符
2015/01/14 Javascript
PHPExcel中的一些常用方法汇总
2015/01/23 Javascript
jQuery实现textarea自动增长宽高的方法
2015/12/18 Javascript
JS正则表达式学习之贪婪和非贪婪模式实例总结
2016/12/26 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
关于iframe跨域POST提交的方法示例
2017/01/15 Javascript
Node.js实现文件上传的示例
2017/06/28 Javascript
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
angularJs 表格添加删除修改查询方法
2018/02/27 Javascript
微信小程序自定义导航教程(兼容各种手机)
2018/12/12 Javascript
ant design vue 表格table 默认勾选几项的操作
2020/10/31 Javascript
基于python时间处理方法(详解)
2017/08/14 Python
在java中如何定义一个抽象属性示例详解
2017/08/18 Python
Python3生成手写体数字方法
2018/01/30 Python
PyQt5 对图片进行缩放的实例
2019/06/18 Python
django 快速启动数据库客户端程序的方法示例
2019/08/16 Python
多个版本的python共存时使用pip的正确做法
2020/10/26 Python
ASP.NET中的身份验证有那些
2012/07/13 面试题
经贸韩语专业大学生职业规划
2014/02/14 职场文书
诚信的演讲稿范文
2014/05/12 职场文书
顶岗实习协议书
2015/01/29 职场文书
优胜劣汰,强者为王——读《鲁滨逊漂流记》有感
2019/08/15 职场文书
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis
5分钟教你docker安装启动redis全教程(全新方式)
2021/05/29 Redis
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python
Win10多屏显示如何设置?Win10电脑多屏显示设置操作方法
2022/07/07 数码科技