Множественные обещания выборки - тот же URL, другое тело - PullRequest
0 голосов
/ 09 июля 2020

Попытка нескольких fetch Promises для одного и того же URL, но с разным телом для каждого вызова. Сейчас я их все выписываю. Как мне go написать это менее подробным образом?

Promise.all([
    fetch("https://cors-anywhere.herokuapp.com/https://api.myurl.com/verify", {
      body: `link=${productVariant1}&license_key=${licenseKey}`,
      headers: {
        "Content-Type": "application/x-www-form-urlencoded"
      },
      method: "POST"
    }).then(do something),
    fetch("https://cors-anywhere.herokuapp.com/https://api.myurl.com/verify", {
      body: `link=${productVariant2}&license_key=${licenseKey}`,
      headers: {
        "Content-Type": "application/x-www-form-urlencoded"
      },
      method: "POST"
    }).then(do something),
  ]).then(data => {

      /* process response */
    }

Всего 5 обещаний, и только часть вызова productVariant отличается.

Ответы [ 2 ]

2 голосов
/ 09 июля 2020

Конечно, вы можете сделать это с помощью карты:

Promise.all([productVariant1, productVariant2].map((productVariant, i) => {
return fetch("https://cors-anywhere.herokuapp.com/https://api.myurl.com/verify", {
          body: `link=${productVariant}&license_key=${licenseKey}`,
          headers: {
            "Content-Type": "application/x-www-form-urlencoded"
          },
          method: "POST"
        }).then(data => console.log(`Promise ${i} done`))
})
).then(data => {
console.log("all promises done")
})
0 голосов
/ 09 июля 2020

Вы можете создать функцию:


function Fetch(body) {
  return fetch("https://cors-anywhere.herokuapp.com/https://api.myurl.com/verify", {
    body,
    headers: {
      "Content-Type": "application/x-www-form-urlencoded"
    },
    method: "POST"
  }).then(doSomething)
}

// And then

Promise.all([
  Fetch(`link=${productVariant2}&license_key=${licenseKey}`),
  Fetch(`link=${productVariant2}&license_key=${licenseKey}`)
]).then(responses => {
  // do something with responses
})

Или, если только вещь, которую вы меняете

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