如何返回coroutine或dict(某个对象)?

时间:2017-09-01 09:51:58

标签: python python-3.x python-asyncio

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

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

如何概括它?

1 个答案:

答案 0 :(得分:1)

好吧,如果您知道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