Пакетный большой набор данных JSON в JavaScript и отправка его на сервер - PullRequest
0 голосов
/ 16 января 2019

Это может быть глупый вопрос, но не удалось найти подходящий пример кода с лучшим подходом в JavaScript. У меня 1000 JSON объекта и я хочу отправить 100 на 100. После получения ответа я хочу отправить следующие 100. Заранее спасибо

1 Ответ

0 голосов
/ 16 января 2019

На самом деле это довольно просто, если вы планируете использовать async/await. Концепция заключается в том, чтобы отправить свой JSON Synchronously.

  1. Разделите полезную нагрузку
  2. Синхронно ожидайте, пока ваш сервер не даст ответ
  3. Обработка ответа (продолжить отклонение при возникновении ошибки, это нарушит цикл)
  4. Продолжить изменение индекса

Не проверял код, но, более или менее, он должен быть таким.

const x = [{...}] // assuming that x is your array of object

const sendByChunks = async (chunkSize) => {
  return new Promise((resolve, reject) => {
    let start = 0
    let end = 0

    while (start <= x.length) {
      try {
        end = (end + chunkSize) > x.length ? x.length : (end + chunkSize) // set the end index
        const payload = x.slice(start, end) // slice the array
        start = end
        await postBatchData(payload) // send to your API
      } catch (error) {
        reject(`Error postBatchData from ${start} to ${end}`) // log something
      }
      resolve('Success')
    }
  })
}
sendByChunks(100)
  .then(response => { // handle response (your resolve) })
  .catch(error => { // handle error (your reject) })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...