Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/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
Asynchronous 如何在Lua中执行异步函数?_Asynchronous_Lua_Garrys Mod - Fatal编程技术网

Asynchronous 如何在Lua中执行异步函数?

Asynchronous 如何在Lua中执行异步函数?,asynchronous,lua,garrys-mod,Asynchronous,Lua,Garrys Mod,我在一个函数中有一个数据库查询,该函数返回此查询的结果,在另一个函数中我希望检索该结果,但我不知道如何异步执行此操作。 我正在使用“mysqloo”库进行数据库查询 第一个函数,带有查询: 函数meta:getMoney() localquery2=databaseObject:query(“从luvinsastroi_播放器中选择经济体,其中streamid=”。self:streamid64()…”) query2.onData=函数(q,d) 返回编号(d[“经济型”]) 结束 查询2:开

我在一个函数中有一个数据库查询,该函数返回此查询的结果,在另一个函数中我希望检索该结果,但我不知道如何异步执行此操作。 我正在使用“mysqloo”库进行数据库查询

第一个函数,带有查询:

函数meta:getMoney()
localquery2=databaseObject:query(“从luvinsastroi_播放器中选择经济体,其中streamid=”。self:streamid64()…”)
query2.onData=函数(q,d)
返回编号(d[“经济型”])
结束
查询2:开始()
结束
然后:

hook.Add(“PlayerSay”、“MoneyCommand”、函数(ply、text、team)
如果(文本==“/货币”),则
本地货币=ply:getMoney()
ply:PrintMessage(HUD_PRINTTALK,“您有……钱……”)
结束
(完)
在第二个函数中,money为nil,因此ply:PrintMessage(HUD_PRINTTALK,“Vous avez.”money.“€”)上的
错误尝试连接nil值(money)


如何等待
meta:getMoney()
函数返回数字(d['economy'])

function meta:getMoney(cb)
   local query2 = databaseObject:query("SELECT economy FROM luvinsastroi_player WHERE steamid = '" .. self:SteamID64() .. "' ")
   if cb then 
      query2.onData = function(q, d)
         cb(tonumber(d['economy']))
      end
   else
      query2.onData = function(q, d)
         return tonumber(d['economy'])
      end
   end
   query2:start()
end


hook.Add("PlayerSay", "MoneyCommand", function(ply, text, team)
   if(text == "/money") then
      local function callback_money(money)
         ply:PrintMessage(HUD_PRINTTALK, "Vous avez " .. money .. "€." )
      end
      ply:getMoney(callback_money)
   end
end)

总是
tostring()
这种事情;如果玩家看到
nil€
比崩溃要好。@DarkWiiPlayer好的,谢谢,但是你知道如何解决金钱为零的问题吗?