我试图通过将ajax请求中的for循环的值发送到php文件来检查数据库中的值,“each value in request”,然后文件返回变量“avl”if$data[“avl”]==1
,如果不是,则不可用。
问题是,我检查了一个值流,它们都必须返回1
才能继续我的过程,但条件不会等到for循环结束才进行检查。它在for循环启动之前检查条件,即使代码也不是那样的。例如:在for循环在第50行结束之前,它在第100行执行条件。
var cartItemContainer = document.getElementsByClassName('cart-items')[0]
var cartRows = cartItemContainer.getElementsByClassName('cart-row')
var avl_qty = 1;
for (var i = 0; i < cartRows.length; i++) {
var cartItemContainer = document.getElementsByClassName('cart-items')[0]
var cartRows = cartItemContainer.getElementsByClassName('cart-row')
var cartRow = cartRows[i]
var titleElement = cartRow.getElementsByClassName('cart-item-title')[0]
var item = titleElement.innerText
var quantityElement = cartRow.getElementsByClassName('cart-quantity-input')[0]
var freequantityElement = cartRow.getElementsByClassName('cart-quantity-free-input')[0]
var quantity = quantityElement.value
var freequantity = freequantityElement.value
alert("before avilability ajax")
$.ajax({
url: "checkavlqty.php",
method: "POST",
data: {
item: item,
quantity: quantity,
freequantity: freequantity
},
dataType: "JSON",
success: function(data) {
alert(JSON.stringify(data));
if (data["avl"] == 0) {
alert("inside condistion")
avl_qty = 0;
}
}
})
}
alert(avl_qty)
它总是通知1
,即使avl_qty的最终值是0
。
您在循环中进行的ajax调用是异步的,这意味着当执行到达$.ajax[...]
行时,它将“在后台”运行,而正常的执行则继续通过循环。
在您的代码中最有可能发生的情况是,在来自循环的ajax响应到达您之前,执行会到达alert(avl_qty)
行。您可以通过运行脚本来测试这一点。您将看到它将从ajax请求中执行警报(“avilability ajax之前”)
,然后执行警报(avl_qty)
,最后执行所有警报(json.stringify(data));
。
为了解决这个问题,您将不得不等待异步调用完成,您可以使用async/Await甚至回调,下面是一个示例。
我正在写一份简单的银行申请书。在我的程序中,我使用了while循环。如果用户输入错误,它将再次提示用户输入。 现在的问题是我无法编写任何语句。它总是显示错误(比如:unreachable语句),最终该行不会被打印出来。 我该怎么解决这个问题? [我之所以需要使用,是因为我想打印用户输入的所有信息。] 我正在从事的项目:
所以我这里有一个程序,它只是简单地模仿跳棋(但不是跳,而是一个棋子简单地“吃掉”另一个棋子)。我有一个简单的类,它实现了一个“checkers”类对象,并创建了一个名为“chips”的int数组变量。还有一个“while”语句,它在chip[0]和chips[1]整数大于0时创建了一个循环。看起来是这样的: Checkers类中的count方法如下所示: 板是8 x 8(这就是board.leng
问题内容: 我一直在使用“ if”来测试自己的版本,并且一切似乎都正常。当然,如果使用signalAll()而不是signal(),这将导致严重崩溃,但是如果一次仅通知一个线程,这怎么会出错? 他们的代码在这里 -检查put()和take()方法;在Condition的JavaDoc顶部可以看到一个更简单,更重点的实现。 下面是我实施的相关部分。 PS我知道,通常,尤其是在这样的lib类中,应该让
问题内容: 以下示例在Node.js书中给出: 解释了while循环为何阻止执行时,作者说: 节点将永远不会执行超时回调,因为事件循环卡在了循环中,而循环在第7行开始了,因此永远不会给它处理超时事件的机会! 但是,作者没有解释为什么这是在事件循环的背景下发生的,还是在幕后真正发生了什么。 有人可以详细说明吗?为什么节点卡住?以及如何在保留控制结构的同时更改上述代码,以使事件循环不会被阻塞,并且代码
我想我的程序跳过了while循环,但我真的不确定到底发生了什么。该函数应该通过找到GCD,然后将分子和分母除以该数字来减少分数。 我得到分子和分母的绝对值,以确保如果分数是负数,我会在最后保持它。如果分子为0,则要求我返回(0,1)。问题是关于while循环。。。似乎它被完全跳过了。有什么建议吗?
本文向大家介绍JavaScript do ... while循环,包括了JavaScript do ... while循环的使用技巧和注意事项,需要的朋友参考一下 示例 一个do while循环保证至少运行一次,因为它的条件是在一个迭代结束时只检查。传统while循环可能会运行零次或多次,因为在迭代开始时会检查其条件。