Skip to content

异步组件模块 ^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的状态执行后续代码

Released under the BSD3 License