使用Generator功能而不是正常功能是否安全?

时间:2017-05-07 19:45:59

标签: javascript node.js asynchronous generator

产量不存在时它们是相同的,当然在运行阶段不一样。

function* add(x, y) {
    return x + y;
}  

var it = add(2, 3); 

it.next();

function add(x, y){
    return x + y;
}

add(2, 3);

作为一种习惯,是否安全并且可以使用它们而不是正常的功能? 尽管有表现。

1 个答案:

答案 0 :(得分:1)

你的问题在任何意义上都过于宽泛 - 我对你有一些评论,但实际上我认为应该删除这个问题/答案。

SO上的每个问题都应包含Minimum, Complete, Verifiable Example (MCVE)。有关如何在此处提问的其他指导,请参阅Help Center: How to Ask

  

安全吗?

只要您的环境支持生成器功能(大多数旧版环境不支持),那么确定,它是安全的"。如果您想支持旧环境,那么您必须转换您的程序。

  

可以吗?

如果是你的程序,只有你必须维护它,做任何你想做的事。但是,如果您正在与其他人合作或发布供社区使用的内容,那么当普通函数调用时,其他程序员不会想要使用生成器API(f(x).next().value)。 (f(x))就足够了

  

......尽管有表现

这是否意味着您知道发电机与普通功能相比具有可怕的性能?我没有基准,但我估计发电机比普通功能慢至少10倍,如果不是这样的话。

  

...所以在这种情况下,无需切换

在未来的JavaScript未来中,每个人都会回到原来的程序并更新所有函数来使用生成器。生成器有一组非常具体的用例,在普通函数完成工作的情况下使用它们会相当愚蠢。

  

这只是我的一个问题!

这并没有以某种方式提高问题的质量。 SO是关于建立一个知识库,其中问题和答案现在对于将来访问该网站的人来说是有用的。主观或基于意见的主题在这里被认为是偏离主题的,因为来自许多用户的定性反应将很快变得混乱,并且很容易降级为争论 - 只要看看任何政治和讨论"今天在任何形式的媒体上

正如其他人所评论的那样,如果你有关于此的客观细节,你应该谈论/询问这些。 "安全吗?"并且"可以吗?"既不是目标也不是特定的