众所周知,luatask使用的协程机制,所以sys.taskInit支持sys.wait。
但是sys.subscribe并不能使用sys.wait,可是很多情况下需要结合使用,那么就要有变通的法子。
在此介绍个解决方案:
--使用sys.taskInit“初始化”,sys.waitUntil阻塞,直到收到消息,代码再继续执行
sys.taskInit(function()
sys.waitUntil("TEST")
print("fst test")
sys.wait(1000)
print("sec test")
end)
sys.timerStart(sys.publish, 5000, "TEST")
实际上,它等同于
local function functionA()
sys.waitUntil("TEST")
print("fst test")
sys.wait(1000)
print("fst test")
end
sys.taskInit(functionA)
sys.timerStart(sys.publish, 5000, "TEST")