簡體   English   中英

如何同時異步地進行多個ajax調用

[英]How to make multiples ajax calls simultaneously and asynchronously

我有一個名為Agendamento的 javascript 對象,它具有以下重要部分:

const Agendamento = {
   // ...

   storeResultados: async function (consulta) {
        //...
        $.ajax({
            type: 'POST',
            url: '<my-url>',
            data: <my-data>,
        });
    }
}

在另一個地方,我有另一個重要的部分:

for (const consulta of consultas) {
    Agendamento.storeResultados(consulta);
}

我的問題是:為什么沒有同時和異步地調用這些調用??。

這樣做的目的:正如您可能猜到的那樣,我調用的這些 API 需要花費太多時間來返回數據。 所以我知道這些調用不會同時被調用,因為一個請求等待前一個請求,然后它開始,如果你們所有人都需要一些信息,請把它留在評論中,我的頭被這個燒壞了。

從您的問題中不清楚為什么您的 AJAX 調用在異步函數中。 $.ajax已經返回了一個承諾。

我在這里使用了一個虛假的 API 調用,它反映了你post AJAX 調用,但隨機返回值,所以你可以看到它是如何工作的。 偽 API 函數不會被同時調用,因為它顯然是在循環中調用的,但對 API 的調用也不必相互等待。

正如您所看到的,每當代碼運行時,它們都會在不同的時間返回。

 const Agendamento = { storeResultados: function(consulta) { // Pretend this part is your AJAX call const rnd = Math.random() * ((5 - 1) + 1) * 1000; return new Promise(res => { setTimeout(() => res(consulta), rnd); }); } } const consultas = [1, 2, 3]; // Here I'm just looping over your array and returning the AJAX // promise, then I log the data for (let consulta of consultas) { const promise = Agendamento.storeResultados(consulta); promise.then(data => { console.log(data); }); }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM