协程_async 修饰函数_回调
#!user/bin/env python3
# -*- coding:utf-8 -*-
# Email 23198899766@QQ.com
# Time : 2021/3/14 13:17
import asyncio
# async 修饰函数
async def request(url):
print('正在请求的url是',url)
print('请求成功',url)
return url
# async修饰的函数,调用之后返回的一个协程对象
c=request('www.baidu.com')
# #创建一个事件循环对象
# loop = asyncio.get_event_loop()
#
# #将协程对象注册到loop中,然后启动loop
# loop.run_until_complete(c)
# #task的使用
# loop = asyncio.get_event_loop()
# #基于loop创建了一个task对象
# task=loop.create_task(c)
# print(task)#没执行的状态pending
# loop.run_until_complete(task)
# print(task)#执行的状态finished
#
# #future的使用
# loop = asyncio.get_event_loop()
# task = asyncio.ensure_future(c)
# print(task)
# loop.run_until_complete(task)
# print(task)
def callback_func(task):
# result返回的就是任务对象中封装的协程对象对应函数的返回值
print(task.result())
#绑定回调
loop = asyncio.get_event_loop()
task = asyncio.ensure_future(c)
# 将回调函数绑定金到任务对象中
task.add_done_callback(callback_func)
loop.run_until_complete(task)