在一个nodemcu,我使用了闭包来发送文件通过套接字,就像这样:
function sendfile(sock, name)
local fd = file.open(name, "r")
function sendchunk()
local data = fd:read()
if data then
sock:send(data)
else
fd:close()
sock:close()
end
end
sock:on("sent", sendchunk)
sendchunk()
end
几个文件,解释恐慌转移由于“没有足够的内存”之后。 我能想象这可能是由于封闭还在闲逛。 这将是困难的垃圾收集器,以确定sendchunk()将不会被再次调用一次文件和插座被关闭。
不幸的是我的谷歌搜索没有透露结束关闭和释放它使用的内存的方法。
我使用了错误的方法来做到这一点? 我也许应该使用匿名函数或东西吗?