日期: 2022-09-20 15:44:19 浏览数:3

上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
泽州网站制作【泽州网站优化】泽州建网站、泽州微信公众号运营、泽州网页设计、泽州微信小程序商城

泽州,古代州名,是今山西晋城市在隋、唐、五代、宋之称。 [1-4]
尧舜时,属冀州畿内地。春秋属晋,战国属韩,后兼属赵与魏。秦兼天下,为河东上党二郡地,两汉因之。三国魏时,属平阳上党二郡地,西晋因之。永嘉之后,沦于十六国之前赵、后赵、前秦所据。
东晋太元十一年(386),西燕慕容永分上党置建兴郡。北魏永安二年改置建州,治高都城,辖高都、长平、安平、泰宁四郡。北齐改置建州道行台,北周复为建州。隋开皇三年(583),改建州为泽州,依境内获泽河为名。大业三年改置长平郡,义宁二年复为泽州。
唐仍为泽州,天宝初改高平郡,乾元初复为泽州,宋仍为泽州及高平郡,先后隶河东道、河东路。金灭北宋,改曰南泽州,金元光二年,升忠昌军节度。元置泽州司侯司,至元三年,罢司侯司复为泽州,隶中书省平阳路、晋宁路。明洪武二年,升泽州直隶州,直隶山西承宣布政使司。
清雍正六年(1728),升为山西省泽州府。
民国二年(1913),北洋袁世凯政府颁布《划一现行各省官厅组织令》,废府。
注:历代郡州府辖境与今晋城市辖6(县、市、区)大体一致。自北魏起治所均位于今城区。 [1-4]
在js中,尤其是nodeJs中,异步回调是家常便饭,随时会面临一大波的嵌套,或者是可以并行执行的代码因为不好处理何时结束而采用地狱嵌套一个个执行,嵌套到最后一个自然就全部都执行完了,这是最不需要动脑子的写法。还有一种是弄个变量,执行一个+1,执行一个+1,最终轮询这个变量,当这个值达到数据量最大的时候就断定全部执行完了。这比前者高级一点,至少比前者性能好,不需要等待时间,但是很别扭,每次写并行代码都要处理这种吗?显然不合适,而async.js就是封装了解决了我们所有困扰的工具。它包含了并行的处理,串行的处理,包括以上不涉及的错误处理、参数传递,主要封装了三大函数:
第一个参数均为要执行的函数集合,为一个数组,并行处理series和waterfall 数组里面放的函数都是按前后执行,只有执行了前一个并且完成了才会执行下一个,第二个参数最终执行的回调函数,即数组里面所有的函数都执行完了就会跑到最终的回调函数执行最后的使命,如:
解释下callback(null,1, 'a'); 第一个参数是错误(error),传null就是表示没有错误,才会执行下一个函数,1和‘a’是传递给最终回调函数的参数result, 以数组形式归集中间过程所有执行函数传过来的参数。
如果有一个函数有错误了则会中断执行下面的所有函数直接跳到最终回调。如:
则第二个函数将不会执行。
同理,waterfall也是如此,那为何搞了两个,传参形式不一样,比如说后一个执行的函数需要等待前一个函数执行完成后得到的某一个数据,那么就应该用waterfall,而最终回调函数的result也是中间所有函数最后执行的那个函数传过来的参数,如:
async.waterfall([
function(callback) {setTimeout(function(){callback(null,1, 'a');}, 1000)},
function(arg1, arg2, callback) {
console.log(arg1, arg2);//1, 'a'
setTimeout(function(){callback(null,2);}, 1000);
},
],function(err, result){
console.log(result);//2
});
而并行处理parallel, 数组里面的函数是不分先后顺序,全部一起执行,所有函数都有返回结果后再执行最终回调函数,如:
async.parallel([
function(callback) {setTimeout(function(){callback(null,1, 'a');}, 1000)},
function(callback) {setTimeout(function(){callback(null,2);}, 1000)},
],function(err, result){
console.log(result);//[[1,'a'], 2]
});
看起来跟串行函数series写法和参数是一模一样,区别是内部运行机制不一样,并行明显快得多,当函数与函数之间不需要依赖关系的时候,首选使用并行,因为它可以节省n倍时间。当函数之间有依赖的时候只能用waterfall或series,串行使用场景如:
某用户更新一篇文章,要先获取这篇文章的作者,判断作者是否是该用户,如果是才允许修改,不是的话禁止修改。
补充:parallel还有另外一种写法,第一个参数不是一个数组,而是对象,最终回调函数的result也是对象。如:
async.parallel({
one:function(callback) {setTimeout(function(){callback(null,1, 'a');}, 1000)},
two:function(callback) {setTimeout(function(){callback(null,2);}, 1000)},
},function(err, result){
console.log(result);//{one:[1,'a'], two:2}
});
泽州网站制作【泽州网站优化】泽州建网站、泽州微信公众号运营、泽州网页设计、泽州微信小程序商城
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)