var idd;
$.each(data, function (i, items) { //1st each
$.each(items, function (j, item) { // 2nd each
console.log("Field:" + j + " Value:" + item);
if (j=="sha_id"){ idd=item; }
});
console.log("Items");
console.log("ID:" + idd);
db.transaction(function (tx) {
console.log("being inserted");
console.log("ID Inserting:" + idd);
//then some database insertion query
这是示例上部脚本
基本上第1个。每个将运行2轮和第2轮。每个第1轮将运行两轮。每个。
所以在控制台日志中我希望看到
田地....价值
字段.....值
项目
ID:2
被插入
ID插入:2
田地....价值
字段.....值
项目
ID:3
被插入
ID插入:3
但我得到的是这个
字段....值
字段.....值
项目
ID:2
田地....价值
字段.....值
项目
ID:3
被插入
ID插入:3
被插入
ID插入:3
为什么我的db.transaction最初没有在console.log(“Items”)之后执行,因为它们在同一个循环中。我应该纠正任何代码错误吗?
答案 0 :(得分:0)
据推测,db.transaction
是异步的。
这意味着$.each
循环继续运行,并且不等待db.transaction
完成。
当db.transaction
最终完成时,会调用您给它的回调。在$.each
循环结束后很长时间(相对)。
故事的寓意是,任何等待db.transaction
完成的代码都必须在你传递的db.transaction
回调中调用。