계산을 수행할 수 있다. 이 개념을 제네레이터(실행을 잠시 중단했다가 나중에 재개할 수 있는
함수)라는 개념과 짝지으면, 다음과 같이 순차적인 코드와 형태가 매우 비슷한 비동기적 코드
를 작성할 수 있다.
from
some_async_database_library
import
save_results_to_db
async
def
save_value(value):
print
(f
"
Saving {value} to database
"
)
db_response = await save_result_to_db(result)
print
("Response from database: {db_response}
"
)
if
__name__ == "__main__
"
:
eventloop.put(
partial(save_value, "Hello World
"
,
print
)
)
여기서
save
_
reresult
_
to
_
db
는
Future
타입의 값을 반환한다. 그 값을
await
하면 퓨
처의 값이 준비될 때까지
save
_
value
의 실행을 잠시 멈출 수 있다. 값이 준비되면
save
_
value
가 재개되어 연산을 마무리한다.
여기서
save
_
result
_
to
_
db
가 반환하는
Future
객체에는
Future
결과에 대한
프라미스
가 있
을 뿐, 결과 자체는 없으며, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.