Следующая функция, когда используется, выбирает и возвращает массив до 50 комментариев одного сообщения. Сначала он выбирает одну запись по идентификатору, и у этого объекта записи есть массив идентификаторов комментариев, которые он будет получать.
Моя цель состоит в том, чтобы досрочно прервать эту задачу в моем компоненте класса React, используя componentWillUnmount
, вызов abort
по сигналу на экземпляре класса. Сигнал передается как abortSignal
.
Вопрос в том, у меня есть случай вложенных запросов на выборку. Как мне подойти к этому, чтобы убедиться, что любые текущие запросы на выборку прерываются, когда компонент отключается? На мой взгляд, передачи сигнала на внешнюю выборку будет недостаточно, если этот этап уже завершен. Должен ли я создать другой сигнал внутри этой функции и перейти к отдельной выборке?
const fetchComments = async (type, abortSignal) => {
const res = await fetch(endpoints[`${type}Stories`]);
const post = await res.json();
return Promise.all(post.slice(0, 50).map(async id => {
const url = endpoints.singleStory.replace('[id]', id);
const comment = await fetch(url);
return comment.json();
}));
}