Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .每个循环都没有完全执行。。。为什么?(代码和日志可用)_Javascript_Jquery - Fatal编程技术网

Javascript .每个循环都没有完全执行。。。为什么?(代码和日志可用)

Javascript .每个循环都没有完全执行。。。为什么?(代码和日志可用),javascript,jquery,Javascript,Jquery,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("

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轮和第2轮

因此,在控制台日志中,我希望看到
领域值
领域值
项目
ID:2
正在插入
ID插入:2
领域值
领域值
项目
ID:3
正在插入
ID插入:3

但我得到的是这个

场。。。。值
领域值
项目
ID:2
领域值
领域值
项目
ID:3
正在插入
ID插入:3
正在插入
ID插入:3


为什么我的db.transaction不在console.log(“项”)之后执行,因为它们在同一个循环中。是否有任何代码错误需要更正?

大概是
db。事务是异步的

这意味着
$。每个
循环都会继续运行,不必等待
db.transaction
完成

db.transaction
最终完成时,将调用您给它的回调。这种情况(相对地)发生在
$之后很久。每个
循环都已完成


这个故事的寓意是,任何应该等待
db.transaction
完成的代码都必须在您传递的
db.transaction
回调中调用。

您的数据库事务代码是异步调用吗?是的,它们是异步的:现在就明白了。。。。顺便说一句,你能提示我如何修改我的代码并从该db.transaction调用双循环吗?或者至少让它等待:S@cjmling:嗯,你真的不想让它等待。您只需要习惯于使用异步代码。你有什么理由需要它等待吗?呵呵,我真的不想让它等待:S…实际上它将是大约20-50圈。。所以我不应该让它等待一个android应用程序:S。。。如果它们有不同的功能,那么它很容易处理。。。但这种带有异步代码的双循环让我难以思考:Sok…有一个想法。目前,这些异步代码只会在循环和进程中使用变量,这可能会把事情搞砸,因为存在延迟。。。。。因此,如果我将变量传递给异步代码,它们是否只处理我传递的变量…无论它们在什么时候处理,或者有多少延迟。。。。。或者,再次使用新变量调用异步代码会扰乱第一次调用,因为它们可能尚未完成处理******希望你得到它****我会在早上试试这个:D。。。。Thanks@cjmling当前位置我不知道您在谈论哪些变量。您需要发布一个更完整的代码示例。如果每个外循环都有一个
db.transaction
,则每个对事务的回调都可以从外循环访问适当的
i
参数。