我在项目中遇到了一些问题,因为节点是异步的,但现在我有一个for loop
,我在循环结束或中断之后做了一些事情,它似乎同步工作而且我想知道原因。
我有这段代码:
var newItem = true;
for (var i = 0; i < cart.length; i++) {
if (cart[i].title == slug) {
cart[i].qty++;
newItem = false;
break;
}
}
if (newItem) {
cart.push({
title: slug
});
}
所有这一切都按预期工作! newItem
变量始终具有正确的值。
为什么newitem并不总是true
?
我cart
数组中的项目从不超过3项,这是为什么?如果我有1000件物品会有不同的表现吗?
答案 0 :(得分:0)
您提供的代码是同步运行的,如果您想测试它是否在异步条件下运行,请尝试运行此代码
var newItem = true;
for (var i = 0; i < cart.length; i++) {
setTimeout(function(){
if (cart[i].title == slug) {
cart[i].qty++;
newItem = false;
break;
}
}, 1000);
}
if (newItem) {
cart.push({
title: slug
}
}