Nano Hash - криптовалюты, майнинг, программирование

Несколько fetch() с одним сигналом, чтобы прервать их все

Я видел этот другой ответ: https://stackoverflow.com/a/47250621/2809729

Итак, могу ли я прервать множественный запрос на выборку, используя только один сигнал?

26.02.2018

Ответы:


1

На момент написания вопроса я уже нашел решение в этом сообщение о том, как прервать выборку от одного из пионеров, которые работали над реализацией прерывания.

Так что да, вы можете :) Вот краткий пример:

async function fetchStory({ signal }={}) {
  const storyResponse = await fetch('/story.json', { signal });
  const data = await storyResponse.json();

  const chapterFetches = data.chapterUrls.map(async url => {
    const response = await fetch(url, { signal });
    return response.text();
  });

  return Promise.all(chapterFetches);
}

В приведенном выше примере один и тот же сигнал используется для начальной выборки и для параллельной выборки глав. Вот как можно использовать fetchStory:

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

fetchStory({ signal }).then(chapters => {
  console.log(chapters);
});

В этом случае вызов controller.abort() отклонит обещание о незавершенных выборках.

26.02.2018

2

Я абстрагировался от решения этой проблемы и придумал «fetch-tx», транзакцию выборки, которая предоставляет единую функцию прерывания для всех связанных операций выборки.

вы можете найти его здесь: fetch-tx

08.01.2020
  • да ладно, на самом деле я создал свою собственную оболочку выборки, которая позволяет вам прервать их все или по отдельности каждую из них giacomocerquone.com/blog/fetch-wrapper @OrBachar 09.01.2020
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..