Lua 没有返回正确的值

Lua 没有返回正确的值,lua,Lua,您好,我有两个函数,一个用于返回值 function AddPlayer(steamID, source) for i,p in ipairs(players) do if steamID == p[1] then players[i] = {p[1], p[2], source} return end end local initialPoints = GetInitialPoints(s

您好,我有两个函数,一个用于返回值

function AddPlayer(steamID, source)
    for i,p in ipairs(players) do
        if steamID == p[1] then
            players[i] = {p[1], p[2], source}
            return
        end
    end

    local initialPoints = GetInitialPoints(steamID)
    print(initialPoints)
    table.insert(players, {steamID, initialPoints, source})
end

function GetInitialPoints(steamID)
    local points = 0
    print(steamID)
    MySQL.Async.fetchAll("Select priority FROM queue where `identifier`= @identifier",
    {
        ['@identifier'] = steamID,
    },
    function(resp)
        points = resp[1].priority
        print(points)
    end)
    return points
end
因此,打印实际上打印正确的值(10000)


但在返回函数AddPlayer中,我打印初始点,它打印的是0,这是我在声明变量时设置的值。当它需要打印我设置的点时。

因为异步调用,并且不期望请求结束。当从
GetInitialPoints
返回时,
points
值仍然未知。
function AddPlayer(steamID, source)
    for i,p in ipairs(players) do
        if steamID == p[1] then
            players[i] = {p[1], p[2], source}
            return
        end
    end
    print(steamID)
    MySQL.Async.fetchAll(
        "Select priority FROM queue where `identifier`= @identifier",
        {
            ['@identifier'] = steamID,
        },
        function(resp)
            local initialPoints = resp[1].priority
            print(initialPoints)
            table.insert(players, {steamID, initialPoints, source})
        end
    )
end