大神帮我看看这段代码是什么地方出了问题
发布于 15 天前 作者 quanpf2481 548 次浏览 来自 问答

下面这段代码的问题是,在前面的语句执行完后,在后面eventproxy中,打印一个字符,按说每次循环只打印一次,当循环长度为2的时候,应该打印2次字符串,但是实际却打印了不止2次,麻烦大神帮我看看是什么问题??谢谢了!!!! let len = 2; let i = 0; (function next(i,len,callback) { if(i < len) { let sql1 = util.format(‘select count(OnType) as cnt1 from %s where OnType = 0 and ’ + ’ UpdateTime = “%s” and GwType = “%s” ‘,GwOnOffHist,yesterday,res[i][“GwType”]); mysqlClient(sql1,function(err,res) { if(err) { lightLog.error(‘pid:’,process.pid,’’,err.stack); } else{ // lightLog.debug(‘pid:’,process.pid,’’,res); // console.log(res); ep.emit(‘data1’,res); } }); let sql2 = util.format(‘select count(OnType) as cnt2 from %s where OnType = 1 and ’ + ’ UpdateTime = “%s” and GwType = “%s” ‘,GwOnOffHist,yesterday,res[i][“GwType”]); mysqlClient(sql2,function(err,res) { if(err) { lightLog.error(‘pid:’,process.pid,’’,err.stack); } else{ // lightLog.debug(‘pid:’,process.pid,’’,res); // console.log(res); ep.emit(‘data2’,res); } }); let sql3 = util.format(‘select count(OnType) as cnt3 from %s where OnType = 2 and ’ + ’ UpdateTime = “%s” and GwType = “%s” ‘,GwOnOffHist,yesterday,res[i][“GwType”]); mysqlClient(sql3,function(err,res) { if(err) { lightLog.error(‘pid:’,process.pid,’’,err.stack); } else{ // lightLog.debug(‘pid:’,process.pid,’’,res); // console.log(res); ep.emit(‘data3’,res); } }); let sql4 = util.format(‘select count(OffType) as cnt4 from %s where OffType = 0 and ’ + ’ UpdateTime = “%s” and GwType = “%s” ‘,GwOnOffHist,yesterday,res[i][“GwType”]); mysqlClient(sql4,function(err,res) { if(err) { lightLog.error(‘pid:’,process.pid,’’,err.stack); } else{ // lightLog.debug(‘pid:’,process.pid,’’,res); // console.log(res); ep.emit(‘data4’,res); } }); let sql5 = util.format(‘select count(OffType) as cnt5 from %s where OffType = 1 and ’ + ’ UpdateTime = “%s” and GwType = “%s” ‘,GwOnOffHist,yesterday,res[i][“GwType”]); mysqlClient(sql5,function(err,res) { if(err) { lightLog.error(‘pid:’,process.pid,’’,err.stack); } else{ // lightLog.debug(‘pid:’,process.pid,’’,res); // console.log(res); ep.emit(‘data5’,res); } }); let sql6 = util.format(‘select count(OffType) as cnt6 from %s where OffType = 2 and ’ + ’ UpdateTime = “%s” and GwType = “%s” ‘,GwOnOffHist,yesterday,res[i][“GwType”]); mysqlClient(sql6,function(err,res) { if(err) { lightLog.error(‘pid:’,process.pid,’’,err.stack); } else{ // lightLog.debug(‘pid:’,process.pid,’’,res); // console.log(res); ep.emit(‘data6’,res); next(i + 1,len,callback); } }); ep.tail(‘data1’,‘data2’,‘data3’,‘data4’,‘data5’,‘data6’,function(data1,data2,data3,data4,data5,data6) { console.log(‘qq’);//就是在这里打印字符串

						// console.log(data1);
						// console.log(data2);
						// console.log(data3);
						// console.log(data4);
						// console.log(data5);
						// console.log(data6);
						// let sql = util.format('insert into %s (Layer1ID,GwType,StrgyOnNum,StrgyOffNum,ForceOnNum,ForceOffNum,UpdateTime) ' +
						// 	' values(%s,%s,%s,%s,%s,%s,"%s")',OnOffNumRec,1,i,data1[0]["cnt1"],data2[0]["cnt2"],
						// 	data3[0]["cnt3"],data4[0]["cnt4"],yesterday);
						// mysqlClient(sql,function(err,res) {
						// 	if(err) {
						// 		lightLog.error('pid:',process.pid,'',err.stack);
						// 	}
						// 	else{
						// 		// lightLog.debug('pid:',process.pid,'',res);
								
						// 	}
						// });
					});
					}
					else{
						callback();
					}
				}(0,len,function() {

				}));
12 回复

我虽然不知道你的 JS 代码哪里挂了,但是我知道你的 md 的代码挂了

@steambap 什么意思?能否说的清楚一点

这格式,完全没有看的想法

@quanpf2481 好像是在说markdown格式

能把代码看完的都是有耐心的好人。 给你点提示,你对 tail 和 event 一无所知。 现在还用 eventproxy ,不想吐槽。 image.png

昨天刚看完eventproxy 感觉不喜欢它处理异步的方法 还是 async 好用 看着舒服

@MiYogurt 老哥 你现在用什么管理异步

@dengnan123 https://nodelover.me/course/js-async 这么好的网站你竟然不知道。 async

@nullcc 刚入门,格式应该怎么样来写呢??求大神指点

@MiYogurt 能否说的细一点,新手入门,还望多多指教

看视频啊。 es7 的语法啊 async、await 啊。

@MiYogurt 我真不知道,才写node三个月而已。。。

回到顶部