function uploadInfos(recJSON,conn,callback){
userId=recJSON.userIn
for (var i in recJSON.Infos){
var error;
conn.query('INSERT INTO log SET data=?', recJSON.Infos[i].data, function(err, result) {
if (err) {callback(err,null,userId); }//这里我用的callback回调,不用throw因为callback里还有记录日志的操作。
});
}
}
请问怎么跳出for循环,或者直接return跳出函数,谢谢!
如果是数组循环的话,可以当出现err时,让i=数组.length。如果是对象的话,可以if(err) break;
对了,还有个方法就是goto语句了,可以这样 function uploadInfos(recJSON,conn,callback){ userId=recJSON.userIn lookHere: for (var i in recJSON.Infos){ var error; conn.query(‘INSERT INTO log SET data=?’, recJSON.Infos[i].data, function(err, result) { if (err) { break lookHere; }//这里就可以跳出了 }); } }
谢谢,我试试看
不能一次插入多条数据? conn.query(“insert ……; insert ……”);
我怎么觉得 for 循环已经执行完了,因为conn.query是异步操作。
对啊。。我也觉得
可以的,我后来才知道insert into table (NoteId,NoteUserId) values (xxx,xxxx),(xxxx,xxxx) 就可以插入多条了
是执行完了,我前面的理解又问题,后来问了人,用递归解决了这个问题
@luoliangle nxycdl 5楼•0 秒前
怎么解决的 for 里面是异步的。用foreach 吗。