下面这段代码的问题是,在前面的语句执行完后,在后面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() {
}));