Как получить часть контента с помощью javascript fetch? - PullRequest
0 голосов
/ 12 июля 2020

Я хочу получить содержимое файлов уценки с удаленного сервера с помощью javascript fetch. Перед загрузкой полного текста файлов я хочу проверить их переднюю часть, чтобы определить, нужно ли загружать каждый файл. Пример файла уценки выглядит так:

---
author: foobar
---

very long text...

Я знаю, что могу загрузить все содержимое файла, но я хочу получить первую часть содержимого, чтобы снизить нагрузку на сеть.

Как скачать часть файла разметки?

1 Ответ

1 голос
/ 12 июля 2020

Хотя я бы рекомендовал использовать метаданные как отдельный ресурс, вы можете прервать текущую выборку, используя AbortController:

const controller = new AbortController(),
signal = controller.signal;

fetch(url, {signal}).then(async resp => {
  const reader = resp.body.getReader();

  // Read the front matter. This example just reads 100 bytes.
  let bytesRead = 0;
  let result, data = [];
  while (true) {
    // Note: It is possible for `reader.read()` to return the whole file
    // if the HTTP response is not split among several TCP packets.
    result = await reader.read();
    if (result.done)
      break;
    
    data.push(result.value);
    bytesRead += result.value;
    if (bytesRead >= 100)
      break;
  }

  console.log(data);

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