nodejs中的异步流程序控制nsync
异步编程是指由于异步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相关推荐
- 深入理解nodejs中的异步编程
文章目录 简介 同步异步和阻塞非阻塞 javascript中的回调 回调函数的错误处理 回调地狱 ES6中的Promise 什么是Promise Promise的特点 Promise的优点 Promi ...
- nodeJS中的异步编程
nodejs 不是单线程 在博客项目中关于异步问题: 1.当用户添加一条博客时 需要通过post方式向服务器发送数据 后台获取用户以post方式拿到传送过来的数据 然后存入数据库: 上面的代码:创建一 ...
- nodejs中解决异步嵌套循环,循环嵌套异步
众所周知,nodejs异步和循环对于初学者来说是一个很大的问题, 当异步和循环同时出现的时候这个问题就会被放大很多倍. 庆幸的是,大神们研究出了async这个第三方模块,解决了node中异步金字塔和循 ...
- NodeJS中的异步编程经验
问题引入:今天在 Gulp 构建任务中出现一个 html 解析错误,但是并没有报错,也没有中断 gulp 构建任务的执行,而是出现 UnhandledPromiseRejectionWarning 的 ...
- grpc python异步实现_在grpcpython中处理异步流请求
现在这有点笨拙,但是您可以按照以下方式完成您的用例:#!/usr/bin/env python from __future__ import print_function import time im ...
- 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 ...
- nodejs 同步和异步
nodejs 中同步和异步 两种方法的区别如下: 同步方法: 等待每个操作完成,然后只执行下一个操作 异步方式: 从不等待每个操作完成,而是只在第一步执行所有操作 nodejs 中同步异步思想 同步: ...
- Nodejs 中的非阻塞I/O、异步和事件驱动
前言 Node.js使用 事件驱动机制.具有非阻塞的I/O模型这样的特点,Node.js中的大多数Api都用到了异步函数,那麽又该如何获取异步函数返回的数据呐!废话不多说,来看看本次分享 都有哪些亮点 ...
- 【Kotlin 协程】Flow 异步流 ② ( 使用 Flow 异步流持续获取不同返回值 | Flow 异步流获取返回值方式与其它方式对比 | 在 Android 中使用 Flow 异步流下载文件 )
文章目录 一.使用 Flow 异步流持续获取不同返回值 二.Flow 异步流获取返回值方式与其它方式对比 三.在 Android 中 使用 Flow 异步流下载文件 一.使用 Flow 异步流持续获取 ...
最新文章
- linux 存储映射lun 给_在Linux中针对物理磁盘和LUN映射Oracle ASM磁盘
- WebSocket学习与使用
- Hdu 1072 【广搜】.cpp
- mac笔记本怎么外接显示屏_苹果MAC笔记本怎么外接显示器?
- 4_InfluxDB学习之InfluxDB的基本概念、InfluxDB中独有的概念(Point,series),InfluxDB学习之InfluxDB的基本操作,InfluxDB操作方式,crud
- highcharts总结
- jQuery操作iframe中js函数的方法小结
- Android8.1怎么装谷歌,谷歌PixelXL安卓9.0/8.1/8.0/7.X安装面具ROOT方案
- install python 3.5.0_Mac 下安装Python3.5出现“python3-3.5.0 already installed, it's just not linked”错误...
- 计算分数的浮点数值(信息学奥赛一本通-T1010)
- linux 脚本 数字运算符,Shell 基本运算符
- 【南邮操作系统实验】页面置换算法(FIFO、LRU、OPT)图形化界面(JavaFx)
- qt撤销与回退_Git撤销某次分支的合并Merge
- 大龄程序员怎样渡过中年危机?很多思考,挺有意思的。
- 2345劫持浏览器主页怎么办?以Microsoft Edge为例
- ubuntu服务器基本安全配置
- 微信高级群发接口 {errcode:40008,errmsg:invalid message type hint: [aRIDBA0726age9]}
- 编码器脉冲计数器/2路DI高速计数器Modbus RTU模块
- 最新AI产品经理求职动态:卡年龄、卡学历,这么卷,怎么办?
- python:2019新年贺词的词云制作以及基于TF-IDF的关键词提取