2

带有PEP 492的Python 3.5为协程和可等待对象引入了特殊语法,并说明了await关键字如下:

以下新的 await 表达式用于获取协程执行的结果:

async def read_data(db):
    data = await db.fetch('SELECT ...')
    ...

await与 类似yield from,暂停协程的执行,read_data直到db.fetchawaitable 完成并返回结果数据。

它继续定义awaitables可以是协程或 Future-like 对象,并具有 Future-like 对象的特定定义。但是尽管阅读了 PEP,我还是不太明白await. 在上面 PEP 引用的行中,谁返回结果数据 -awaitread_data(或两者)?当然,无论我如何调用db.fetch('SELECT ...')(直接、withyield from或 with await),read_data在它(可能None)从db.fetch? 那么有什么特别之处,await又与它有什么关系async呢?

显然我错过了一些东西。

4

0 回答 0