为什么将await *从异步/等待建议中删除?

m0meni

似乎唯一记录在案的地方是此问题线程实际规范但是,删除的原因并未发布到我能找到的任何地方。

推荐的新方法似乎是await Promise.all(),但是我很好奇为什么await*被删除了。

贝吉

好了,自述文件被删除之前的最新版本已经提到了该段中的所有内容:

等待*和并行

在发电机,既yieldyield*可以使用。在异步功能中,仅await允许使用。直接类比yield*在异步函数中没有意义,因为它需要重复等待内部操作,但是不知道将什么值传递给每个等待(对于yield*,它只是传入未定义的值,因为迭代器不接受传入的值)。

已经提出可以为不同的语义重用该语法-为Promise.all这将接受作为Promises数组的值,并且将(异步地)返回Promise返回的值数组。预计这将是最常见的与Promise相关的操作之一,在此提议的核心可用之后,这些操作还没有语法糖。

因此,这yield*与人们所期望的没有直接的相似之处,这没有任何意义,只是一个建议,而从未真正包含在规范建议中。

共识是没有理由引入比必要更多的语法糖,调用Promise.all没有太大区别。

您可以查看第8期第29的讨论

最后,有关强大武器(并行化)的建议仍在进行中。查看异步迭代异步生成器可观察对象可能有些await*关键字的关键字比简单的promise数组要好得多。

async/await建议是最少的,只有引入了必要的图元。没有关于可能的扩展的附加说明,应单独讨论。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

了解ECMAScript中的异步/等待建议

来自分类Dev

为什么我不能通过await将变量分配给异步调用的结果?

来自分类Dev

为什么不'await'等待axios请求完成?

来自分类Dev

为什么 await 在等待代码完成时不起作用

来自分类Dev

为什么将ffmpeg从Debian中删除?

来自分类Dev

为什么异步/等待不异步运行?

来自分类Dev

如果要使用await,为什么Javascript(ES.next)会强制我将一个函数声明为异步函数?

来自分类Dev

为什么`await`函数不是Typescript中的错误?

来自分类Dev

为什么“ await”会阻塞kotlin中的线程?

来自分类Dev

为什么在flutter的main中不能使用await getTemporaryDirectory

来自分类Dev

为什么“覆盖异步无效 OnPaint”中的 Await 会抛出 OutOfMemoryException 或 ArgumentException?

来自分类Dev

承诺嵌套在异步函数中-为什么不仅与异步/等待一起使用?

来自分类Dev

为什么删除异步/等待会导致Task <T>到Task <object>的转换错误

来自分类Dev

为什么异步等待抛出NullReferenceException?

来自分类Dev

为什么建议中间件在ASP.NET Core中异步?

来自分类Dev

为什么将iswitchb从GNU Emacs 24中删除?

来自分类Dev

为什么将实际主机IP从iptables规则中删除

来自分类Dev

为什么await停止执行线程,结果在C#中等待激活?

来自分类Dev

为什么将元组括在括号中?

来自分类Dev

当不使用async / await关键字时,为什么异步单元测试失败?

来自分类Dev

为什么我必须多次编写await才能进行异步查询?

来自分类Dev

为什么带有 await 关键字的异步方法仍然阻塞主线程?

来自分类Dev

为什么需要使用 await 关键字来调用异步方法

来自分类Dev

为什么我们必须等待C#中的异步方法调用

来自分类Dev

异步函数不等待 await

来自分类Dev

为什么Eclipse建议我将方法设为静态

来自分类Dev

为什么不建议将UIImage数据保存到UserDefaults?

来自分类Dev

为什么不建议将引导分区放在lvm上?

来自分类Dev

为什么不建议将DOCKERFILE中的ARG传递给机密?

Related 相关文章

  1. 1

    了解ECMAScript中的异步/等待建议

  2. 2

    为什么我不能通过await将变量分配给异步调用的结果?

  3. 3

    为什么不'await'等待axios请求完成?

  4. 4

    为什么 await 在等待代码完成时不起作用

  5. 5

    为什么将ffmpeg从Debian中删除?

  6. 6

    为什么异步/等待不异步运行?

  7. 7

    如果要使用await,为什么Javascript(ES.next)会强制我将一个函数声明为异步函数?

  8. 8

    为什么`await`函数不是Typescript中的错误?

  9. 9

    为什么“ await”会阻塞kotlin中的线程?

  10. 10

    为什么在flutter的main中不能使用await getTemporaryDirectory

  11. 11

    为什么“覆盖异步无效 OnPaint”中的 Await 会抛出 OutOfMemoryException 或 ArgumentException?

  12. 12

    承诺嵌套在异步函数中-为什么不仅与异步/等待一起使用?

  13. 13

    为什么删除异步/等待会导致Task <T>到Task <object>的转换错误

  14. 14

    为什么异步等待抛出NullReferenceException?

  15. 15

    为什么建议中间件在ASP.NET Core中异步?

  16. 16

    为什么将iswitchb从GNU Emacs 24中删除?

  17. 17

    为什么将实际主机IP从iptables规则中删除

  18. 18

    为什么await停止执行线程,结果在C#中等待激活?

  19. 19

    为什么将元组括在括号中?

  20. 20

    当不使用async / await关键字时,为什么异步单元测试失败?

  21. 21

    为什么我必须多次编写await才能进行异步查询?

  22. 22

    为什么带有 await 关键字的异步方法仍然阻塞主线程?

  23. 23

    为什么需要使用 await 关键字来调用异步方法

  24. 24

    为什么我们必须等待C#中的异步方法调用

  25. 25

    异步函数不等待 await

  26. 26

    为什么Eclipse建议我将方法设为静态

  27. 27

    为什么不建议将UIImage数据保存到UserDefaults?

  28. 28

    为什么不建议将引导分区放在lvm上?

  29. 29

    为什么不建议将DOCKERFILE中的ARG传递给机密?

热门标签

归档