在Node.js异步异步编程

在Node.js异步异步编程
1。什么是异步编程
异步编程意味着由于异步I/O和其他因素,执行结果不能同步获得。

在回调函数中的代码为下一步的写作风格,如setTimeout函数,Ajax请求,等等。

实例:

对于(var i = 1;i < 3;i + +){
setTimeout(){()函数(
console.log(我);
},0);
};
这里的大多数人认为输出是123,或者333,实际上,它会输出444。

下面是我们正在讨论的异步编程。

高级功能的定义

这就是为什么这里提到高级函数,因为高级函数是异步编程的基础。

那么高级功能是什么

事实上,高级函数是将函数用作参数或作为返回值使用。

实例:

函数测试(v){
返回函数(){
返回v;
}
}
事实上,一个函数被用作返回值。

2。过程控制
函数有:

系列

瀑布

并行

parallellimit



串行函数串行执行

它的功能是按顺序执行它。
async.series({
函数(回调){
回调(null,1);
},
二:函数(回调){
回调(null,2);
}
}函数(错误,结果){
console.log(结果);
});
输出:{:1,二:2 }

系列函数的第一个参数可以是数组或JSON对象。

参数的类型不同,这将影响返回数据的格式。

瀑布功能瀑布流

瀑布和串联函数之间有许多相似之处,它们按顺序执行。

不同的是,瀑布的每个函数生成的值将传递给下一个函数,而序列没有这个函数。示例如下:
Async.waterfall({
函数(回调){
回调(空的话,');
},
功能(arg1,arg2,回调){
现在equals'one'and arg1 arg2 /现在equals'two
回调(null,);
},
功能(arg1,回调){
现在equals'three ' / / arg1
回调(null,'done);
}
}函数(错误,结果){
现在equals'done ' / /结果
console.log(结果);
});
同样重要的是要注意,瀑布的任务参数只能是数组类型。

当一个函数出错时,它的错误直接传递给最终回调,结果被丢弃,后一个函数不再执行。

并行(任务,{回调})

并行函数是一个多个函数的并行执行,每个函数都是立即执行的,不需要等待其他函数先执行。

传递给最终回调的数组中的数据是在任务中声明的顺序,而不是完成的顺序。示例如下:
Async.parallel({
函数(回调){
回调(null,话);
},
函数(回调){
回调(null,);
}
},
函数(错误,结果){

});

任务参数可以是数组或JSON对象,与串联函数相同。

任务参数类型不同,返回的结果格式将不同。

ParallelLimit(任务限制,{回调})

的parallellimit功能类似于平行,但它有一个参数的限制。

受限参数限制任务只能并发一定数量的并发性,而不是非限制并发性。例子如下:
Async.parallelLimit({
函数(回调){
回调(null,话);
},
函数(回调){
回调(null,);
}
},
2,

函数(错误,结果){
console.log(结果);
});
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部