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 npm install全局安装和本地安装的区别
Jun 05 NodeJs
NodeJS学习笔记之MongoDB模块
Jan 13 NodeJs
Nodejs实现批量下载妹纸图
May 28 NodeJs
详解nodejs操作mongodb数据库封装DB类
Apr 10 NodeJs
nodejs调取微信收货地址的方法
Dec 20 NodeJs
nodejs结合socket.io实现websocket通信功能的方法
Jan 12 NodeJs
nodejs简单访问及操作mysql数据库的方法示例
Mar 15 NodeJs
独立部署小程序基于nodejs的服务器过程详解
Jun 24 NodeJs
图解NodeJS实现登录注册功能
Sep 16 NodeJs
nodeJS与MySQL实现分页数据以及倒序数据
Jun 05 NodeJs
ubuntu系统下使用pm2设置nodejs开机自启动的方法
May 12 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跨站刷票的实现代码
2013/06/18 PHP
php中创建和调用webservice接口示例
2014/07/25 PHP
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
2016/10/18 PHP
PHP中的函数声明与使用详解
2017/05/27 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
PHP 图片合成、仿微信群头像的方法示例
2019/10/25 PHP
JS 文件大小判断的实现代码
2010/04/07 Javascript
一个挺有意思的Javascript小问题说明
2011/09/26 Javascript
JavaScript判断密码强度(自写代码)
2013/09/06 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
三种Node.js写文件的方式
2016/03/08 Javascript
form表单转Json提交的方法(推荐)
2016/09/23 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
2017/01/26 Javascript
vue better-scroll插件使用详解
2018/01/25 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
2019/03/14 Javascript
react 原生实现头像滚动播放的示例
2020/04/21 Javascript
详解Python爬虫的基本写法
2016/01/08 Python
windows下pycharm安装、创建文件、配置默认模板
2018/07/31 Python
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
DataFrame.to_excel多次写入不同Sheet的实例
2019/12/02 Python
Pytorch提取模型特征向量保存至csv的例子
2020/01/03 Python
Python新手学习函数默认参数设置
2020/06/03 Python
CSS3+js实现简单的时钟特效
2015/03/18 HTML / CSS
俄罗斯玩具、儿童用品、儿童服装和鞋子网上商店:MyToys.ru
2019/10/14 全球购物
小学教师的自我评价范例
2013/10/31 职场文书
函授教育个人学习的自我评价
2013/12/31 职场文书
励志演讲稿范文
2014/04/29 职场文书
八年级英语教学计划
2015/01/23 职场文书
总经理助理岗位职责
2015/01/31 职场文书
2015年毕业生实习评语
2015/03/25 职场文书
在职证明范本
2015/06/15 职场文书
2015年高校保卫处工作总结
2015/07/23 职场文书
宝宝满月祝酒词
2015/08/10 职场文书
2019年教师入党申请书
2019/06/27 职场文书