У меня есть функция загрузки файла, я отправляю файл по частям, поэтому было сделано много запросов, когда я загружаю файл, который я использую async : 'true'
в $.ajax({});
, затем, когда я нажимаю на другую вкладку, запрашивается получение например, список названий книг ... и запрос находится в ожидании и сделан, когда весь запрос о загрузке был завершен.
Мне нужно обещание в моем коде? или $.when()
лучше?
Мой код:
$("#Upload").click(function (){
...
sendFile(file, blockLength, numberOfBlocks).then(()=>{
//All request are made
});
});
async function sendFile(file, chunkSize, numberOfBlocks) {
...
function sendNextChunk () {
$.ajax({
async: true,
type: 'POST', url: "URL",
headers: headers,
data: fileChunk,
cache: false,
contentType: false,
processData: false
}
...
if (currentChunk <= numberOfBlocks) {
await sendNextChunk();
}
}
await sendNextChunk();
}
В сети это как:
/UPload?chunk=1 200
/UPload?chunk=2 200
/UPload?chunk=3 200
/getBooksList pending < - Here is pending until all request of Upload are made
/UPload?chunk=4 200
/UPload?chunk=5 200
/UPload?chunk=6 pending
/UPload?chunk=7 pending
/UPload?chunk=8 pending
/UPload?chunk=9 pending
/UPload?chunk=10 pending
...