• 欢迎大家分享资料!前往留言板评论即可!

【小技巧】如何收到订阅消息(sys.subscribe)后执行任务函数(sys.taskInit)?

合宙 模组资料网 2年前 (2021-05-15) 298次浏览 0个评论 扫描二维码

众所周知,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")


喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址