[英]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.