Синхронный вызов в машинописном тексте для angular

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

arrJsonPathFinal - это список файлов JSON.

Promise.all(arrJsonPathFinal.map(url =>
  fetch(url).then(resp => resp.json())
)).then(jsonValue => {
  jsonValue.forEach((json, index) => {
    strJsonData += '"' + arrJsonPath[index] + '":' + JSON.stringify(jsonValue[index]) + ",";
  });
  return JSON.parse("{" + strJsonData.substring(0, strJsonData.length - 1) + "}");
});

У вас есть идеи, как с этим справиться? Пытался найти решение с помощью наблюдаемых и обещаний, но пока я невежественен.

Что вы имеете в виду под «методом их всех»? Приведенный выше код находится в функции, и вы ожидаете, что он вернет результат строки return JSON.parse("{" + strJsonData.substring(0, strJsonData.length - 1) + "}");? Согласно это, вы все равно получаете Promise, и вам нужно записать его в then(), или в await, или что-то в этом роде. Проверь это stackblitz.com/edit/js-i2yrtj!

frigo 07.12.2018 17:36
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
1
398
1

Ответы 1

Promise.all(arrJsonPathFinal.map(url =>
  fetch(url)
)).then(resps => {
      resps.forEach((resp, index) => {
          jsonValue=> resp.json())
          strJsonData += '"' + arrJsonPath[index] + '":' + 
             JSON.stringify(jsonValue[index]) + ",";
   });
    return JSON.parse("{" + strJsonData.substring(0, strJsonData.length - 1) + 
   "}");
 });

У меня это не работает, потому что сам код показывает некоторые ошибки. индекс неизвестен и т. д.

Sereghon 07.12.2018 17:17

Другие вопросы по теме