Я бы подошел к этому, вероятно, создав новый файл с единственной функцией, которая возвращает эти данные + переменную, которая хранит кэшированную версию.
Например:
// MyThing.js
let cachedData;
const loadData = () => {
// Load data for the first time
};
const getData = () => {
if (!cachedData) loadData();
};
module.exports = {
getData,
loadData
};
Теперь, если вам когда-нибудь понадобится получить эти данные где-либо еще, вы можете сделать что-то вроде:
// Some-other-file.js
const { getData } = require('./MyThing.js'):
console.log(getData());
Несколько вещей, о которых следует помнить:
- Мои названия оченьплохо, потому что я не знаю точно, что вы хотите загрузить.
- Если загрузка этих данных основана на асинхронной операции, такой как сетевой вызов или запрос к базе данных, убедитесь, что это все функции
async
.