gpt4 book ai didi

变量设置为 X 时的 Javascript 回调

转载 作者:行者123 更新时间:2023-11-29 22:40:46 25 4
gpt4 key购买 nike

有一个我似乎无法解决的问题。我想编写一个通用的 javascript 函数,它将接受一个变量和一个回调,并继续执行直到该变量不是 false。

例如,在代码中发生其他事情之前,变量 SpeedFeed.user.sid 为假,但我不想在设置它之前执行特定的回调。

电话:

SpeedFeed.helper_ready(SpeedFeed.user.sid, function(){
alert(SpeedFeed.user.sid);
// Run function that requires sid to be set.
});

函数:

helper_ready: function(vtrue, callback){
if(vtrue != false){
callback();
} else {
setTimeout(function(){
SpeedFeed.helper_ready(vtrue, callback);
}, SpeedFeed.apiCheckTime);
}
}

我缩小范围的问题似乎是因为在 setTimeout 中我调用了 vtrue 而不是实际的 SpeedFeed.user.sid,它将始终设置为 false。我意识到我可以为每次只评估 SpeedFeed.user.sid 的时间编写一个特定的函数,但我想要一个可以在整个应用程序中使用的通用方法。

感谢任何见解:)

最佳答案

您将 vtrue 的当前值传递给 setTimeout 然后重复该过程,因此参数 vtrue 始终相同(vtrue 是不可变的)。

为什么不编写一个类似回调的函数来检查特定值是否为真,为什么不创建可以调用 callback() 或只调用 callback()< 的 setter 和 getter 函数 直接在 vtruetrue 时?代码将更容易按照这种方式进行操作,并且您不需要诸如 setTimeout 循环之类的 hack。

这个问题有多种不需要回调的解决方案。一种常规方法是使用 setters and getters而不是作业。

关于变量设置为 X 时的 Javascript 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2936146/

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