fetch и обычные функции

Друзья, и снова нужна ваша помощь...

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

Итак, написал я функцию, которая подгружает данные из текстового файла на сервере в момент загрузки страницы приложения. данная функция выполняется после полной загрузки xtml-документа через onload и есть у меня обычная функция, которая должна принять в себя полученное значение new_text, данная функция обьявлена в другом скрипте, который идет за этим:

<!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript">
   let new_text;
function default_story() {
  fetch("./story/game/game.txt")
  .then((response) => {
    return response.text();
  })
  .then((data) => {
    console.log(data)
    new_text = data;
  });
}   
</script>
<script type="text/javascript">
  function load_default_story() { file_reader(new_text) }   
  function file_reader(text) { console.log(text) }    
</script>
</head>
<body onload="default_story()">
<button id="btn_start" class="btn_menu" type="button" name="start"  onclick="load_default_story()">Start</button></body>

По итогу при нажатии на кнопку, в консоль должно опубликоваться содержимое new_text.

Функция file_reader отлично работает с другими функциями и кодом js, но каждый раз, когда я пытаюсь передать ей new_text у меня консоль выдает ошибку file_reader is not defined.

Я так понимаю, что это как-то связано с особенностями работы промисов, но по идее, default_story() отрабатывается, когда уже все данные подгружены, так почему file_reader is not defined?

Подскажите, что не так и как это поправить?


Ответы (0 шт):