Corona SDK,函数运行顺序错误?

我正在尝试将一些数据保存到一个表中。我从数据库中获取数据,它运行正常。 我的问题是数据没有保存在表中。它是一个lua表,如table = {},而不是数据库表。

也许它被保存了,但看起来打印是在保存之前完成的,即使我在之后调用它们。实际上,尽管我首先调用它,但我的网络请求似乎是程序中最后完成的。

我非常想知道原因。有什么想法吗?

这是代码:

---测试!

print("开始测试!")

-- hej = require(“test2”)

local navTable = {
    Eng_Spd = 0,
    Spd_Set = 0
}

local changeTab = function()
    navTable.Eng_Spd = 2
end

printNavTable = function()
    print(“navTable innehåller:”)
    print(navTable.Eng_Spd)
    print(navTable.Spd_Set)
end

require "sqlite3"
local myNewData
local json = require(“json”)
local decodedData

local SaveData2 = function()
    local i = 1
    local counter = 1
    local index = “livedata”..counter
    local navValue = decodedData[index]
    print(navValue)

    while (navValue ~= nil) do
        --tablefill =“INSERT INTO navaltable VALUES(NULL,'“ .. navValue [1] ..“','“ .. navValue [3] ..”','“ .. navValue [4] ..”','“ .. navValue [5] ..”','“ .. navValue [6] ..“ ');”
        --print(tablefill)
        --db:exec(tablefill)
        if navValue [3] ==“Eng Spd” then navTable.Eng_Spd = navValue [4]
        elseif navValue [3] ==“Spd Set” then navTable.Spd_Set = navValue [4]
        else print(“blah”)
        end
        print(navTable.Eng_Spd)
        print(navTable.Spd_Set)
        counter = counter + 1
            index = “livedata”..counter
                navValue = decodedData[index]

    end
end

local function networkListenereventifevent.isErrorthen
            print(“网络错误!”)
    else
            myNewData = event.response
            print(“From server:”..myNewDatadecodedData =(json.decodemyNewData))
    SaveData2()
    --db:exec(“DROP TABLE IN EXISTS navaltable”)
    end
end

--function uppdateNavalTable()
    network.request(“http://127.0.0.1/firstMidle.php”,“GET”,networkListener--end
changeTab()
printNavTable()
--uppdateNavalTable()
printNavTable()

print(“完成!”)

这是输出:

版权所有(C)2009-2012 Corona Labs Inc.。
        版本:2.0.0
        构建:2012.971
开始测试!
navTable innehåller:
2
0
navTable innehåller:
2
0
完成!
From server: {"livedata1":["1","0","Eng Spd","30","0","2013-03-15 11:35:48"],"li
vedata2":["1","1","Spd Set","13","0","2013-03-15 11:35:37"]}
table: 008B5018
30
0
30
13

顺便说一下,“navTable innehåller”意味着“navTable包含”。

点赞
用户2072591
用户2072591

答案是网络监听器与代码的其余部分并行运行。

2013-05-29 08:40:16