【发布时间】:2015-12-27 13:53:08
【问题描述】:
我现在正在研究生成器和承诺,并且我已经掌握了它们的工作原理。现在是时候制作我自己的函数来利用这些了。那里有指南解释如何制作它们以及它们的用途,但是他们很少讨论应该使用它们的适当时间。
我知道这主要与承诺有关,因为生成器只是帮助代码编写看起来是同步的(除其他外)。
所以我的问题是:我应该什么时候以及什么时候不应该承诺我拥有的功能?
根据我的理解,如果 cpu 被函数 100% 使用,那么我应该不承诺,因为没有意义。
如果 CPU 被阻塞并且正在等待外部的东西,例如等待下载东西,那么我想我 应该 承诺该功能。
【问题讨论】:
-
JavaScript 的 IO 很重。大量调用远程资源。对于这些类型的操作,创建一个 Promise 是完全有意义的。如果你有 CPU 绑定操作,你可以看看在浏览器中使用 webworkers 或 node.js 中的 child_process 模块。
-
“如果 cpu 被阻塞并且正在等待外部的东西,比如等待下载东西,那么我想我应该承诺这个功能。” --- 有什么例子呢?所有的 IO 都已经是异步的了,所以你基本上别无选择。
标签: javascript node.js ecmascript-6 v8 es6-promise