local TaskQueue = {}
TaskQueue.__index = TaskQueue
function TaskQueue.new()
return setmetatable({ _queue = {} }, TaskQueue)
end
-- 添加一个延迟任务(delay单位:秒)
function TaskQueue:wait(delay, fn)
table.insert(self._queue, { delay = delay, fn = fn })return self
end
-- 执行队列(依赖引擎的 SetTimer 或等效接口)
function TaskQueue:run()
local elapsed = 0
for _, task in ipairs(self._queue) do
elapsed = elapsed + task.delay
local capturedFn = task.fn
SetTimer(elapsed * 1000, function()
local ok, err = pcall(capturedFn)
if not ok then print("[TaskQueue] 执行错误: " .. tostring(err)) end
end)
end
end