gpt4 book ai didi

javascript - 如果没有执行callback()怎么办?

转载 作者:行者123 更新时间:2023-12-03 06:28:19 27 4
gpt4 key购买 nike

我有一个简单的问题,但在网上找不到任何答案。

在参数中带有回调的 JavaScript 函数中,必须内部始终有一个 callback() 吗?如果 callback() 仅有时执行,可能会出现任何性能问题吗?

function do_this(param1, callback) {
param1.forEach(function(param) {
io.sockets.connected[param].emit('do this', function(res) {
if (res) callback();
});
});
}

请注意,在此代码中,不应始终调用 callback()。运行此函数时是否存在任何潜在的性能问题,因为对函数 do_this() 的多次调用不会返回回调?

最佳答案

不,仅存在逻辑问题。

如果回调不会被调用,这意味着你的程序将无法知道它的调用发生了什么,但是关于性能,在你的示例中,在你得到发出回调之后,而不是调用你的回调,函数将丢失了最后一个链接,将成为垃圾收集器的食物,因此实际上它将被遗忘并且不会产生正式的性能影响。

但最好还是使用一些结果信号,就像我们有一个规则一样 - 如果函数在有条件的情况下返回某些内容,它应该在没有条件的情况下返回其他内容,只是为了更好地理解数据流。

使用 Promises 并最好始终解决/拒绝它们,否则您将无法确定程序状态。

最后 - 它会起作用,但最好避免这种模式。

关于javascript - 如果没有执行callback()怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38544591/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com