如何 return coroutine 或 dict(some object)?

How to return coroutine or dict(some object)?

我必须使用完全相同逻辑的方法。唯一的区别是它 returns 不同的值。

async def job_pooling(self):
    message['status'] = Text.NEW.value
    await self.db.store_alert(..)
    await self.aws.delete_message(..)
    yield message


async def job_pooling(self):
    message['status'] = Comment.NEW.value
    store_message = await self.db.store_comment(..)
    await self.aws.delete_message(..)
    yield store_message

如何概括它?

好吧,如果您知道 store_item 结果的类型,您可以使用它而不是与 None 进行比较:

async def job_pooling(sqs_in, status, store_item, delete_message):
    message['status'] = status.NEW.value
    item = await store_item(message)
    await delete_message(message=message, sqs_url=sqs_in)
    if isinstance(item, dict):
        yield item
    yield message