Почему этот загрузчик обещаний выборки не показывает результат

#javascript #reactjs #promise #fetch

#javascript #reactjs #обещание #выборка

Вопрос:

В этом Codesandbox

Он загружает как 20 fetch promises в array , а затем наблюдает за их разрешением с помощью progressbar.

Чего я не понимаю, так это почему в makeQueryablePromise console.log('inside makeQueryablePromise ', value); возврате undefined , но в fetch нем нет — console.log('inside fetch ', data)) . makeQueryablePromise имеет то же promise самое??

Вот экран печати, показывающий вывод журнала:

введите описание изображения здесь

введите описание изображения здесь

Комментарии:

1. опс неправильный codesandbox, я редактирую ok

Ответ №1:

В вашем коде:

   const makeRequests = useCallback(function() {
    return Array.from(Array(promises)).map(() =>
      fetch(URL)
        .then(res => res.json())
        .then((data) => console.log('inside fetch ', data))
    );
  }, []);
 

Последний обратный вызов возвращается undefined , потому console.log что ничего не возвращает, поэтому вы теряете данные.

Чтобы решить эту проблему, верните данные:

         .then((data) => {
          console.log("inside fetch ", data);
          return data;
        })