Javascript 使用回力棒测量带宽->;等待结果
我有一个javascript(jQuery)方法(函数),它可以让我获得带宽vie回力棒 函数如下所示:Javascript 使用回力棒测量带宽->;等待结果,javascript,jquery,boomerang,Javascript,Jquery,Boomerang,我有一个javascript(jQuery)方法(函数),它可以让我获得带宽vie回力棒 函数如下所示: this.getBandwidth = function() { var cookie = BOOMR.utils.getCookie('BA'); if (cookie !== null) { return true; } else { return false; } }; 现在需要一段时间才能使Cookie和Cookie不
this.getBandwidth = function() {
var cookie = BOOMR.utils.getCookie('BA');
if (cookie !== null) {
return true;
} else {
return false;
}
};
现在需要一段时间才能使Cookie和Cookie不再为null。所以,如果cookie实际上仍然为空,我需要重新开始。如果我在else部分再次调用getBandwidth(),我会得到堆栈溢出。已尝试使用while循环检查“cookie”,但它会阻止浏览器
在cookie准备好之前,我如何简单地重复作业?把我的头发拔出来
谢谢。您应该订阅Boomer对象的before_beacon事件。请参见此处的文档:
在定义
getBandwidth
函数之后,将其放在某个地方,一旦boomerang完成了它需要做的所有事情,它就会被调用。那么BOOMR.utils.getCookie('BA')
是异步的还是什么?如何设置BA
cookie?一个选项是使用setTimeout
来不断检查cookie,但我假设其他地方有一个异步函数来设置cookie。向该函数添加回调或承诺可能是理想的。作为旁注,一个名为getBandwidth
的函数返回bool是令人困惑的。@JasonP:我也这么认为。但我一整天都在努力把它做好。我从来没有让它工作过。是的,我知道这件事。这仅用于在此处发布;-)@programisto回调或承诺是对异步任务完成作出反应的方式。如果您在让它工作时遇到困难,请为您的问题添加更多的上下文,或者创建一个JSFIDLE来演示问题,我们将看看是否能够找出哪里出了问题
BOOMR.subscribe("before_beacon", getBandwidth, null, this);