Как подружить $.getScript() с асинхронным запросом?

301
19 апреля 2022, 22:50

Есть массив, который при некотором условии должен подгружаться извне. Есть необходимость в конце вызвать getScript(), в котором этот массив должен использоваться. В основном коде всё работает, массив определяется; в getScript() уже нет. В чём тут проблема и как её решить малой кровью?

(async function() {
  var test = [1,2,3]; var a = 0;
  if (a === 0) {
     let response = await fetch('/array.json');
     test = await response.json();
  }
  // тут код, всё нормально
  $.getScript('/script2.js');   // а тут test is not defined
})();

В /script2.js:

alert(test[0]);
Answer 1

getScript же тоже асинхронный, надо либо так:

$.getScript('/script2.js', function(data, textStatus, jqxhr) {
  // вызываем функцию из script2.js, передаем ей массив test 
  some_function_from_script2(test);
   
});

, либо массив test должен быть глобально объявлен.

READ ALSO
Скрытие модального окна

Скрытие модального окна

Создаю модальное окно с полноразмерным изображением, однако есть ошибка, при клике на превью появляется модалка, затем сразу же удаляется,...

202
Онлайн калькулятор стоимости с динамически создаваемой таблицей

Онлайн калькулятор стоимости с динамически создаваемой таблицей

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

175
Возможно ли загрузить библиотеку d3js on scroll?

Возможно ли загрузить библиотеку d3js on scroll?

Есть страница, фреймворк bootstrap 45 на которой графики, реализованные на d3js находятся глубоко внизу страницы (страница длинная)

310