异步编程是指由于异步I/O等因素,无法同步获得执行结果时,
在回调函数中进行下一步操作的代码编写风格,常见的如setTimeout函数、ajax请求等等
http://cnodejs.org/topic/54acfbb5ce87bace2444cbfb
并不是node中的,但是我们开发中经常使用
使用npm init初始化项目
安装cnpm install async --dev
https://www.npmjs.com/package/async
http://caolan.github.io/async/
创建一个文件
async.js
导入async
var async = require('async')
console.time('test')

//串行无关联,时间为两次时间之和,用法一
async.series([
function (callback) {
setTimeout(function(){
callback(null, 'one')
}, 2000)
},
function (callback) {
setTimeout(function(){
callback(null, 'two')
}, 5000)
}
], function(err, results){
console.log(results)
console.timeEnd('test')
})

//串行无关联,时间为两次事件之和,用法二
async.series({
one: function (callback) {
setTimeout(function(){
callback(null, '1')
}, 1000)
},
two: function (callback) {
setTimeout(function(){
callback(null, '2')
}, 2000)
}
}, function(err, results){
console.log(results)
console.timeEnd('test')
})
//并行无关联,等待事件为最长时间请求过程
async.parallel([
function (callback) {
setTimeout(function(){
callback(null, 'one')
}, 2000)
},
function (callback) {
setTimeout(function(){
callback(null, 'two')
}, 5000)
}
], function(err, results){
console.log(results)
console.timeEnd('test')
})

// 串行有关联,第一个操作结束之后才可以进行下一个
async.waterfall([
function (callback) {
callback(null, 'one', 'two')
},
function (arr1, arr2, callback) {
callback(null, arr1, arr2, 'three')
},
function (arr1, arr2, arr3, callback) {
callback(null, [arr1, arr2, arr3, 'done'])
}
], function(err, results){
console.log(results)
})
npm scripts
可以修改package.json中的scripts中的
"build":"node async.js"
命令行执行npm run build
使用npm run 可以查看可运行命令

转载于:https://blog.51cto.com/12883930/1923755

nodejs中的异步流程序控制nsync相关推荐

  1. 深入理解nodejs中的异步编程

    文章目录 简介 同步异步和阻塞非阻塞 javascript中的回调 回调函数的错误处理 回调地狱 ES6中的Promise 什么是Promise Promise的特点 Promise的优点 Promi ...

  2. nodeJS中的异步编程

    nodejs 不是单线程 在博客项目中关于异步问题: 1.当用户添加一条博客时 需要通过post方式向服务器发送数据 后台获取用户以post方式拿到传送过来的数据 然后存入数据库: 上面的代码:创建一 ...

  3. nodejs中解决异步嵌套循环,循环嵌套异步

    众所周知,nodejs异步和循环对于初学者来说是一个很大的问题, 当异步和循环同时出现的时候这个问题就会被放大很多倍. 庆幸的是,大神们研究出了async这个第三方模块,解决了node中异步金字塔和循 ...

  4. NodeJS中的异步编程经验

    问题引入:今天在 Gulp 构建任务中出现一个 html 解析错误,但是并没有报错,也没有中断 gulp 构建任务的执行,而是出现 UnhandledPromiseRejectionWarning 的 ...

  5. grpc python异步实现_在grpcpython中处理异步流请求

    现在这有点笨拙,但是您可以按照以下方式完成您的用例:#!/usr/bin/env python from __future__ import print_function import time im ...

  6. node.js 异步_Node.js v14中的异步本地存储是什么?

    node.js 异步 Node.js 14 is out now, and with that release, it brings in Async Local Storage support. N ...

  7. nodejs 同步和异步

    nodejs 中同步和异步 两种方法的区别如下: 同步方法: 等待每个操作完成,然后只执行下一个操作 异步方式: 从不等待每个操作完成,而是只在第一步执行所有操作 nodejs 中同步异步思想 同步: ...

  8. Nodejs 中的非阻塞I/O、异步和事件驱动

    前言 Node.js使用 事件驱动机制.具有非阻塞的I/O模型这样的特点,Node.js中的大多数Api都用到了异步函数,那麽又该如何获取异步函数返回的数据呐!废话不多说,来看看本次分享 都有哪些亮点 ...

  9. 【Kotlin 协程】Flow 异步流 ② ( 使用 Flow 异步流持续获取不同返回值 | Flow 异步流获取返回值方式与其它方式对比 | 在 Android 中使用 Flow 异步流下载文件 )

    文章目录 一.使用 Flow 异步流持续获取不同返回值 二.Flow 异步流获取返回值方式与其它方式对比 三.在 Android 中 使用 Flow 异步流下载文件 一.使用 Flow 异步流持续获取 ...

最新文章

  1. linux 存储映射lun 给_在Linux中针对物理磁盘和LUN映射Oracle ASM磁盘
  2. WebSocket学习与使用
  3. Hdu 1072 【广搜】.cpp
  4. mac笔记本怎么外接显示屏_苹果MAC笔记本怎么外接显示器?
  5. 4_InfluxDB学习之InfluxDB的基本概念、InfluxDB中独有的概念(Point,series),InfluxDB学习之InfluxDB的基本操作,InfluxDB操作方式,crud
  6. highcharts总结
  7. jQuery操作iframe中js函数的方法小结
  8. Android8.1怎么装谷歌,谷歌PixelXL安卓9.0/8.1/8.0/7.X安装面具ROOT方案
  9. install python 3.5.0_Mac 下安装Python3.5出现“python3-3.5.0 already installed, it's just not linked”错误...
  10. 计算分数的浮点数值(信息学奥赛一本通-T1010)
  11. linux 脚本 数字运算符,Shell 基本运算符
  12. 【南邮操作系统实验】页面置换算法(FIFO、LRU、OPT)图形化界面(JavaFx)
  13. qt撤销与回退_Git撤销某次分支的合并Merge
  14. 大龄程序员怎样渡过中年危机?很多思考,挺有意思的。
  15. 2345劫持浏览器主页怎么办?以Microsoft Edge为例
  16. ubuntu服务器基本安全配置
  17. 微信高级群发接口 {errcode:40008,errmsg:invalid message type hint: [aRIDBA0726age9]}
  18. 编码器脉冲计数器/2路DI高速计数器Modbus RTU模块
  19. 最新AI产品经理求职动态:卡年龄、卡学历,这么卷,怎么办?
  20. python:2019新年贺词的词云制作以及基于TF-IDF的关键词提取

热门文章

  1. springcloud上传文件_Spring Cloud实战:服务链路追踪Spring Cloud Sleuth
  2. Android之SimpleAdapter使用
  3. LiveData原理分析
  4. 【Android UI】图片 + 文字展示by SpannableStringBuilder
  5. vue插槽样式_vue 插槽简介及使用示例
  6. oracle的乐观锁和悲观锁
  7. 阿里面试题,为什么wait()方法要放在同步块中?
  8. 32-第3章 数据链路层--抓包分析数据帧格式
  9. Redmine使用指南
  10. Bootstrap学习-其它内置组件