Параллельный AJAX-запрос без jQuery - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь получить несколько параллельных запросов с одним обратным вызовом, как jQuery «когда»

$.when(ajax1, ajax2).done(callback)

Я не хочу вызывать второй вызов ajax после завершения ajax1, я хочу, чтобы ajax2 и ajax2 запрашивались одновременно, а затем как обратный вызов, когда оба будут завершены.

Я ищу простой javascript вместо jQuery для такой реализации.

Ответы [ 3 ]

1 голос
/ 17 мая 2019

Используйте метод, чтобы сделать запрос, который будет возвращать обещание .

. Это может быть просто использование API выборки или , упаковывающего XMLHttpRequest сОбещание .

Поместите два обещания в массив и передайте его Promise.all .

Promise.all([ fetch("http://example.com"), fetch("http://example.net") ])
    .then(array => console.log(array));
0 голосов
/ 17 мая 2019

Вы можете заменить done на then Метод

$.when( ajax1 , ajax2 ).then(function() {
    // success ajax1, success ajax 2
});
0 голосов
/ 17 мая 2019

Вы также можете использовать async / await с Promise.all для достижения этого:

async function getAll() {
  // waits untill all resposnes are resolved
  const data = await Promise.all([
    fetch('https://jsonplaceholder.typicode.com/todos/1').then(response =>
      response.json()
    ),
    fetch('https://jsonplaceholder.typicode.com/todos/2').then(response =>
      response.json()
    ),
  ]);
  // returns array of resolved data from fetch
  console.log(data);
}

getAll()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...