Syn c запрос после многих запросов - PullRequest
0 голосов
/ 23 марта 2020

У меня есть функция загрузки файла, я отправляю файл по частям, поэтому было сделано много запросов, когда я загружаю файл, который я использую 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
...
...