У меня в модуле backend.js (модуль - отдельный файл, в котором код заключён в IIFE) есть функция, которая запрашивает данные с сервера.
function httpRequest(url, method, callback) {
var xhr = new XMLHttpRequest();
xhr.open(method, url);
xhr.send();
xhr.addEventListener('load', function () {
if (xhr.status === 200) {
callback(JSON.parse(xhr.responseText));
return;
}
var error = errorCodeMap[xhr.status] ? errorCodeMap[xhr.status] : xhr.status;
showError('Ошибка ' + error);
});
}
function load(onLoad) {
var url = 'https://js.dump.academy/keksobooking/data';
httpRequest(url, 'GET', onLoad);
}
Я вызываю её в другом модуле mainPin.js при клике на mainPin:
mainPinImg.addEventListener('mousedown', function (evt) {
evt.preventDefault();
window.backend.load(window.map.renderPins);
renderPins
- это функция из модуля map.js, которая выводит ряд меток на карту, как раз берёт данные из полученного в результате запроса на сервер массива. Но мне нужно использовать этот массив с данными и для других целей в других модулях, не получая каждый раз заново его с сервера, например, для фильтрации. И я никак не могу понять, как мне его “выдрать” из xhr.addEventListener…, записать в переменную и использовать это переменную, где мне нужно, в других модулях