У меня есть функция с именем scan()
. Он вызывается в al oop. Однако, как это работает в данный момент:
- Звонки
scan()
- Ожидание возврата
scan()
- Увеличение
min
- Повтор
Как мне сделать так, чтобы он одновременно запускал 2
экземпляров scan()
. Где я могу изменить 2
экземпляров на 3
экземпляров или 4
или 5
et c.
Пример: Как я хочу, чтобы это было (ниже пример: 3
экземпляров scan()
, запущенных в любой момент времени. Никогда не должно быть больше, чем 3
экземпляров запущенного сканирования (относительно условия while l oop).
Вызывает scan()
и ожидает возврата значения в фоновом режиме. Как только он получает возвращаемое значение, он увеличивает min
и вызывает другой экземпляр scan()
. Всегда есть 3
экземпляров scan()
, работающих (относительно время l oop состояние)
<script type="text/javascript" src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
<div class="display-error" style="display: none"></div>
<form>
<label for="fname">Fruit (only correct input is: banana)</label><br>
<input type="text" id="fruit-name" name="fruit" value="banana"><br>
<button type="submit" id="submit" value="Submit">Submit</button>
</form>
<div id="results">
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#submit').click(function(e) {
e.preventDefault();
var fruitName = $("#fruit-name").val();
$.ajax({
type: "POST",
url: "verify-input.php",
dataType: "json",
data: {
fruitName: fruitName
},
success: function(data) {
if (data.code == 200) {
$("#submit").html("Running Scan");
(async function() {
var fruitID = data.fruitId;
var min = 1;
while (min < 1000) {
await scan(fruitID, min, min + 30);
min = min + 30;
}
})();
} else {
$(".display-error").html("<ul>" + data.msg + "</ul>");
$(".display-error").css("display", "block");
}
}
});
});
});
function scan(vFruitId, min, max) {
return $.ajax({
type: "POST",
url: "scanner.php",
dataType: "json",
data: {
vFruitId: vFruitId,
min: min,
max: max
},
success: function(data) {
data.forEach((item, idx) => {
$("#results").append(`
<div class="fruit-item" data-item="${idx}">
<div class="f-calories">calories: ${item.sweetness}</div>
<div class="f-sweetness">sweeteness: ${item.calories}</div>
<div class="f-bitterness">bitterness: ${item.bitterness}</div>
</div><br>
`);
})
}
});
}
</script>