Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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 为什么我的for循环有时会执行两次,尽管我使用了break语句?_Javascript_Node.js_For Loop_Break - Fatal编程技术网

Javascript 为什么我的for循环有时会执行两次,尽管我使用了break语句?

Javascript 为什么我的for循环有时会执行两次,尽管我使用了break语句?,javascript,node.js,for-loop,break,Javascript,Node.js,For Loop,Break,在下面的代码中,for循环中的第一个if语句有时会触发两次。它记录两次“hello”,发送两次相同的短信,尽管有break语句。值得注意的是,这种情况只发生在30%左右的时间里。感谢您的帮助 for (let indexS = prisData.length - 1; -1 < indexS; indexS--) { if (prisData[indexS].købt === true && prisData[indexS].købtFor < køb

在下面的代码中,for循环中的第一个if语句有时会触发两次。它记录两次“hello”,发送两次相同的短信,尽管有break语句。值得注意的是,这种情况只发生在30%左右的时间里。感谢您的帮助

for (let indexS = prisData.length - 1; -1 < indexS; indexS--) {
        if (prisData[indexS].købt === true && prisData[indexS].købtFor < købsPrisNu - netto) {
            solgtFor = købsPrisNu
            solgt = true
            console.log("hello");
            nexmo.message.sendSms(from, to, 'Sælg wirtek til ' + solgtFor, {type : 'text'},(err, data) => {if (err != null) {console.log(err)}})
            break
        }
        if (prisData[indexS].solgt === true) {
            break
        }
    }
for(让indexS=prisData.length-1;-1{if(err!=null){console.log(err)})
打破
}
if(prisData[indexS].solgt==true){
打破
}
}

让我为您简化此代码:

function foo()
{
    for ([...]) {
            if (...) {
                [...]
                console.log("hello");
                sendSms();
                break
            }
              [...]
        }
}
无论[…]部分中有什么内容,一次调用foo()都不能调用
console.log(“hello”)
语句两次


log语句被多次执行的唯一合理的可能性是函数被多次调用,或者函数本身被调用(例如,sendSms()直接或间接调用foo()。

console.log(“for循环启动”)
放在
for
行的前面。看来唯一能打印两次hello的方法是让for循环执行两次。你能共享几个变量的值吗。很难复制