Javascript 使用发电机功能代替正常功能是否安全?

Javascript 使用发电机功能代替正常功能是否安全?,javascript,node.js,asynchronous,generator,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;
}  

var it = add(2, 3); 

it.next();

作为一种习惯,使用它们而不是正常功能是否安全?
尽管表现不佳。

从任何意义上讲,你的问题都太宽泛了——我想对你说几句话,但我真的认为这个问题/答案应该删除

关于这一点的每一个问题都应该包含一个答案。有关如何在此处提问的其他指导,请参阅

安全吗

只要您的环境支持生成器功能(大多数旧式环境不支持),那么肯定是“安全的”。如果您想支持遗留环境,则必须传输您的程序

可以吗

如果它是你的程序,只有你必须维护它,做任何你想做的。但是,如果您与其他人一起工作或发布一些供社区使用的内容,那么当普通函数调用(
f(x)
)就足够时,其他程序员不可能希望对所有事情都使用生成器API(
f(x).next().value

…尽管表现不佳

这是否意味着您知道生成器的性能比普通函数差?我没有基准测试,但我估计生成器至少比普通函数慢10倍,如果不是更慢的话

…因此,在这种情况下,无需切换

在JavaScript未来的某个时刻,每个人都会回到他们的旧程序并更新所有函数以使用生成器。生成器有一组非常特定的用例,如果在普通函数可以正常工作的地方使用它们,那将是相当愚蠢的

这只是我的问题

这并不会提高你问题的质量。因此,我们需要建立一个知识库,让问题和答案对现在和将来访问该网站的人都有用。主观或基于观点的话题在这里被认为是离题的,因为许多用户的定性回答会很快弄脏水,很容易演变成争论——只要看看今天任何形式的媒体上的任何政治“讨论”


正如其他人所评论的,如果你对此有客观的细节,你应该谈论/询问这些细节。“安全吗?”和“正常吗?”既不客观也不具体

如果没有理由使用发电机功能,请不要使用。在这个例子中没有。如果您有不同的实际用途,请写下来。通过准确说明“可以使用它们”的含义,避免自以为是的争论-您是否在寻找
generator_func().next().value
func()行为不同的情况
或者您是在寻找兼容性问题还是…?我只是觉得使用生成器而不是普通函数可能是个好主意,就像与
var
相比,使用
let
const
一样。因此,在这种情况下,不需要切换。将生成器函数用于普通函数有点过头了。请关闭此问题。这是纯粹主观/定性的问题,比如“安全吗?”,“可以吗?”
function add(x, y){
    return x + y;
}

add(2, 3);