异步组件模块 ^1.3.5
通用的异步组件模块 用于处理异步相关的业务逻辑
python
from QuModLibs.Modules.Promise.Server import *
# from QuModLibs.Modules.Promise.Client import *
异步 sleep 组件
只有被 Async 装饰的函数才能使用异步组件
python
# 每过一秒打印一次 'async sleep'
@Async
def printLoop():
for i in range(3):
print("async sleep")
yield sleep(1.0)
注意事项
Promise模块的命名可能会和部分标准库内容冲突
异步 event 组件
python
# 等待某个事件
@Async
def awaitEvent(entityId):
def eventBack(args):
if args['entityId'] == entityId:
return True
"""
每次触发等待的事件时都会调用callBack的函数
如果callBack返回True这个promise成功 value为dict参数
如果超过最大时间, promise失败 value 为 None
参数:
@name [str]: 需要等待的事件名
@callBack [function]: 事件触发时的回调函数
@time [float or int]: 最大等待时间
返回:
[bool]: promise是否成功
[dict or None]: 最后一次触发事件时的参数
"""
state, value = yield event("ActuallyHurtServerEvent", eventBack, 3.0)
# 根据promise的状态执行后续代码