问题
- 一个数据源以格式生成数据
{key, value}
- 多个接收者各自等待不同的密钥
例子
获取数据是循环运行的。有时我会想通过使用来获得下一个用键标记的值
Value = MyClass:GetNextValue(Key)
我希望我的代码停在那里,直到值准备好(产生某种未来(?)值)。我尝试过使用简单的协程,但它们仅在等待任何数据时才起作用。
所以我想问的问题是如何使用协程或类似概念(无线程)在 lua 中实现异步值?
旁注
主处理函数除了将值返回给等待的消费者外,还会自己处理一些传入的数据(例如,用特殊键标记)。
完整的使用上下文应该类似于:
-- in loop
ReceiveData()
ProcessSpecialData()
--
-- Called outside the loop:
V = RequestDataWithGivenKey(Key)