Nil Val 固定 rhx
Nil Val fixed rhx
我正在 FiveM 中编写脚本,当服务器启动时,我在控制台中收到 "attempt to call a nil value (local 'cb')" 作为错误。请参阅下面的代码,其中讨论的 nil 值是 cb(nil)。
AddEventHandler("f:getPlayer", function(user, cb)
if(Users)then
if(Users[user])then
cb(Users[user])
else
cb(nil)
end
else
cb(nil)
end
end)
所以我找到了一个 post 谈论将 "and cb" 添加到 "if(Users)then" 所以代码看起来像这样。
AddEventHandler("f:getPlayer", function(user, cb)
if(Users and cb)then
if(Users[user])then
cb(Users[user])
else
cb(nil)
end
else
cb(nil)
end
end)
但这并没有解决问题。
结果是错误消失了。
So I found a post talking about adding "and cb" to the "if(Users)then" so the code looks like this.
没错。但是即使变量 "cb" 不包含它,您也会在代码中调用函数对象。
你的代码应该是这样的:
AddEventHandler("f:getPlayer", function(user, cb)
if cb then
if Users then
cb(Users[user])
else
cb(nil)
end
end
end)
同上:
AddEventHandler(
"f:getPlayer",
function(user, cb)
if cb then
cb(Users and Users[user] or nil)
end
end
)
如果 cb 为 nil,那么无论是否检查 cb 是否被赋值,您仍然试图像函数一样使用它。应该是:
AddEventHandler("f:getPlayer", function(user, cb)
if not cb then return end
if(Users)then
if(Users[user])then
cb(Users[user])
else
cb(nil)
end
else
cb(nil)
end
end)
我正在 FiveM 中编写脚本,当服务器启动时,我在控制台中收到 "attempt to call a nil value (local 'cb')" 作为错误。请参阅下面的代码,其中讨论的 nil 值是 cb(nil)。
AddEventHandler("f:getPlayer", function(user, cb)
if(Users)then
if(Users[user])then
cb(Users[user])
else
cb(nil)
end
else
cb(nil)
end
end)
所以我找到了一个 post 谈论将 "and cb" 添加到 "if(Users)then" 所以代码看起来像这样。
AddEventHandler("f:getPlayer", function(user, cb)
if(Users and cb)then
if(Users[user])then
cb(Users[user])
else
cb(nil)
end
else
cb(nil)
end
end)
但这并没有解决问题。
结果是错误消失了。
So I found a post talking about adding "and cb" to the "if(Users)then" so the code looks like this.
没错。但是即使变量 "cb" 不包含它,您也会在代码中调用函数对象。
你的代码应该是这样的:
AddEventHandler("f:getPlayer", function(user, cb)
if cb then
if Users then
cb(Users[user])
else
cb(nil)
end
end
end)
同上:
AddEventHandler(
"f:getPlayer",
function(user, cb)
if cb then
cb(Users and Users[user] or nil)
end
end
)
如果 cb 为 nil,那么无论是否检查 cb 是否被赋值,您仍然试图像函数一样使用它。应该是:
AddEventHandler("f:getPlayer", function(user, cb)
if not cb then return end
if(Users)then
if(Users[user])then
cb(Users[user])
else
cb(nil)
end
else
cb(nil)
end
end)