HTML5 Javascript嵌套如果其他方法不能按预期工作

时间:2012-12-27 22:16:26

标签: javascript html5

问题:detectLocationtimersset()逻辑似乎不起作用。我知道子例程被解雇了,但我猜多个if else是错的?

detectLocationtimersset()的原因是有一些逻辑来确保没有设置多个定时器。

我创建了第一个if / else,先根据datatime设置定时器,然后我写了第二个if / else来进行检测。

detectLocation()已经过测试并且可以自行运行。

var detectLocationtimerset = 0;
var datatime = 1;

function detectLocationtimersset() {    
    // Setup timer to check for new data start
    // check and see if set 
    if (detectLocationtimerset = 0 ) {
        detectLocationtimerset = 1;
        if (datatime == null) {
            datatime = 9;
            milliseconds = (datatime * 60000)
            setInterval(function () {
                detectLocation();
                console.log("detectLocation() timer set");
            }, milliseconds);   
        } else {
                    detectLocationtimerset = 1;
            milliseconds = (datatime * 60000)
            setInterval(function () {
                detectLocation();
                console.log("detectLocation() timer set");
            }, milliseconds);   
        }   
    }
};

2 个答案:

答案 0 :(得分:4)

我不知道问题是什么,但是

if (detectLocationtimerset = 0 )

应该是

if (detectLocationtimerset === 0)

关于其他说明,

  • 你的缩进应该是一致的
  • 您的操作员间距应保持一致
  • 您应该尽可能优先identity而不是平等
  • 您应该将共享代码从if / else块中移出 - 在<{em} milliseconds块之后放置setInterval作业和if (datatime == null)调用

答案 1 :(得分:2)

你的

if (detectLocationtimerset = 0 ) {

应该是

if (detectLocationtimerset === 0 ) {