与Node js async / await相比,了解Python async / await

r_zelazny

我正在学习Python中的异步编程。我写了一些代码来模拟在Python和Node中获取URL。结果不同,我不确定为什么。

蟒蛇

async def asyncFunc():
   await asyncio.sleep(3)
   print('woke up...')

async def main():
    tasks = [asyncio.create_task( asyncFunc() ) for i in range(3)]

    for task in tasks:
        await task
        print('done waiting...')

asyncio.run(main())

结果:

woke up...
woke up...
woke up...
done waiting...
done waiting...
done waiting...

节点

const asyncFunc = async () => {
  await mySleepFunction(3);
  console.log('woke up...');
}

const main = async () => {
  for (let i = 0; i < 3; i++) {
    await asyncFunc();
    console.log('done waiting...');
  }
}

main();

结果

woke up...
done waiting...
woke up...
done waiting...
woke up...
done waiting...

Node的结果是我所期望的。我的理解是,由创建的任务create_task只有在等待时才开始执行(在for循环中)。但是如果第一个任务尚未完成,for循环如何开始执行第二个任务?

感谢您对此的帮助

r_zelazny

我的困惑来自于没有意识到create_task用来启动并发运行的协程可以修改Python代码,以便通过省略create_task和等待任务来提供Node结果

async def main():

  for task in tasks:
      await asyncFunc()
      print('done waiting...')

使用create_task类似于Promise.all在Node.js中对诺言数组使用

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Node.js中的async / await替换

来自分类Dev

.net中的Node.js与Async / await

来自分类Dev

Node.js中的async / await替换

来自分类Dev

使用 Node js Await/Async 函数

来自分类Dev

Javascript (node.js) Promise async/await 问题

来自分类Dev

async await node.js 跳过第二个 await 语句保存 mongodb

来自分类Dev

在 mongoose.js 中使用 async/await

来自分类Dev

httpclient async / await是否

来自分类Dev

ReaderWriterLockSlim和async \ await

来自分类Dev

EvaulateScriptAsPromiseAsync和async / await

来自分类Dev

正确使用Async / Await

来自分类Dev

Mongodb async await with express

来自分类Dev

Node.js中JavaScript / TypeScript中的Async / Await控制流

来自分类Dev

Node.js,将async / await与readline.on函数一起使用

来自分类Dev

在 Node.js 中,使用 async / await 处理错误的正确方法是什么?

来自分类Dev

node js async/await:为什么我无法获取数据?请求体

来自分类Dev

如何在 Node.js 中使用“async/await”和“promises”进行同步执行?

来自分类Dev

Node.js 在使用变量之前尝试使用 async/await 从 mysql select 中获取数据

来自分类Dev

了解Node.JS async.parallel

来自分类Dev

在React JS中可以使用async / await吗?

来自分类Dev

在Vue.js中使用async / await模式

来自分类Dev

JS async await 不等待也不阻塞进程

来自分类Dev

async/await behaviour of mongoose findById

来自分类Dev

async and await not returning to caller as expected

来自分类Dev

正确使用Async / Await的困惑

来自分类Dev

嵌套的promise,await和async

来自分类Dev

在Jest中使用Async / await

来自分类Dev

使用 async/await 导出 Nodejs

来自分类Dev

async/await 总是返回 undefined