Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用回力棒测量带宽->;等待结果_Javascript_Jquery_Boomerang - Fatal编程技术网

Javascript 使用回力棒测量带宽->;等待结果

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不

我有一个javascript(jQuery)方法(函数),它可以让我获得带宽vie回力棒

函数如下所示:

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);