Javascript 在继续之前,等待for循环中的当前循环完成
让javascript在下一次迭代之前等待for循环的当前迭代完成的最佳方法是什么Javascript 在继续之前,等待for循环中的当前循环完成,javascript,Javascript,让javascript在下一次迭代之前等待for循环的当前迭代完成的最佳方法是什么 field1 BIGINT, -- ID field2 NVARCHAR(100), field3 NVARCHAR(150),
field1 BIGINT, -- ID
field2 NVARCHAR(100),
field3 NVARCHAR(150),
field4 NVARCHAR(150)
);
field1,
field2,
field3,
field4
)
这是我的问题
field1 BIGINT, -- ID
field2 NVARCHAR(100),
field3 NVARCHAR(150),
field4 NVARCHAR(150)
);
field1,
field2,
field3,
field4
)
目前,我正在从SQLite数据库中为for循环中的每个项运行一个SQLSELECT语句,如下所示
for(let i = 0; i < myresult.length; i++){
var query = "SELECT * FROM table WHERE id = " + myresult[i].id;
var result = //Run sql here
if(result.length == 0){ // if result doesn't exist, make it.
var insertQuery = "INSERT INTO table";
}
}
field1 BIGINT, -- ID
field2 NVARCHAR(100),
field3 NVARCHAR(150),
field4 NVARCHAR(150)
);
field1,
field2,
field3,
field4
)
for(设i=0;i
我的问题是,当它在循环中运行时,它会在select完成之前开始运行insert语句
field1 BIGINT, -- ID
field2 NVARCHAR(100),
field3 NVARCHAR(150),
field4 NVARCHAR(150)
);
field1,
field2,
field3,
field4
)
比如说
field1 BIGINT, -- ID
field2 NVARCHAR(100),
field3 NVARCHAR(150),
field4 NVARCHAR(150)
);
field1,
field2,
field3,
field4
)
//循环的第一次迭代
field1 BIGINT, -- ID
field2 NVARCHAR(100),
field3 NVARCHAR(150),
field4 NVARCHAR(150)
);
field1,
field2,
field3,
field4
)
“从id=1的表格中选择*”
field1 BIGINT, -- ID
field2 NVARCHAR(100),
field3 NVARCHAR(150),
field4 NVARCHAR(150)
);
field1,
field2,
field3,
field4
)
“在表(id)中插入值(1)”
field1 BIGINT, -- ID
field2 NVARCHAR(100),
field3 NVARCHAR(150),
field4 NVARCHAR(150)
);
field1,
field2,
field3,
field4
)
//循环的第二次迭代
field1 BIGINT, -- ID
field2 NVARCHAR(100),
field3 NVARCHAR(150),
field4 NVARCHAR(150)
);
field1,
field2,
field3,
field4
)
“从id=2的表格中选择*”
field1 BIGINT, -- ID
field2 NVARCHAR(100),
field3 NVARCHAR(150),
field4 NVARCHAR(150)
);
field1,
field2,
field3,
field4
)
“在表(id)中插入值(1)”
field1 BIGINT, -- ID
field2 NVARCHAR(100),
field3 NVARCHAR(150),
field4 NVARCHAR(150)
);
field1,
field2,
field3,
field4
)
它之所以这样做是因为它不会在开始下一个循环之前等待for循环的当前迭代完成
field1 BIGINT, -- ID
field2 NVARCHAR(100),
field3 NVARCHAR(150),
field4 NVARCHAR(150)
);
field1,
field2,
field3,
field4
)
如何使for循环在开始新循环之前等待当前循环完成?如果在ms sql中使用存储过程,并使用ajax/angular在Javascript上以JSON绑定数据,效果会更好
field1 BIGINT, -- ID
field2 NVARCHAR(100),
field3 NVARCHAR(150),
field4 NVARCHAR(150)
);
field1,
field2,
field3,
field4
)
声明@attreable表
(
field1 BIGINT, -- ID
field2 NVARCHAR(100),
field3 NVARCHAR(150),
field4 NVARCHAR(150)
);
field1,
field2,
field3,
field4
)
插入@attreable
(
field1 BIGINT, -- ID
field2 NVARCHAR(100),
field3 NVARCHAR(150),
field4 NVARCHAR(150)
);
field1,
field2,
field3,
field4
)
选择t.field1
field1 BIGINT, -- ID
field2 NVARCHAR(100),
field3 NVARCHAR(150),
field4 NVARCHAR(150)
);
field1,
field2,
field3,
field4
)
t.field2,
t.field3,
t.field4
来自表1 t
field1 BIGINT, -- ID
field2 NVARCHAR(100),
field3 NVARCHAR(150),
field4 NVARCHAR(150)
);
field1,
field2,
field3,
field4
)
声明@CountTable INT=
(
field1 BIGINT, -- ID
field2 NVARCHAR(100),
field3 NVARCHAR(150),
field4 NVARCHAR(150)
);
field1,
field2,
field3,
field4
)
))
field1 BIGINT, -- ID
field2 NVARCHAR(100),
field3 NVARCHAR(150),
field4 NVARCHAR(150)
);
field1,
field2,
field3,
field4
)
如果(@CountTable SQL查询是异步的。它们可能有一些承诺或回调机制。Sync会阻止线程,而您不会有问题。您使用什么连接到SQL?浏览器或节点?这一行是如何执行的?
var result=//在此处运行SQL
…如果在完成之前没有阻止,例如f如果调用AJAX,您将遇到这样的问题。可能会使用?您省略了最重要的一行:var result=//在此处运行sql请显示您的代码。