Как инициализировать вложенную функцию или класс один раз для 2х файлов
можно ли как-то обыграть этот момент, когда мне необходимо использовать запущенный класс/вложенную_функцию (ClassOrNestedFunction) в двух разных файлах, но с одной инициализацией? Т.е. чтобы аутпут от getStartTime был одинаковый
Пример
// FILE_0
const ClassOrNestedFunction = async()=>{
await sleep(1000);
let time = new Date().getTime();
return {getStartTime: ()=>time};
};
// export for ClassOrNestedFunction
// FILE_1
// import ClassOrNestedFunction from FILE_0
const {getStartTime} = await ClassOrNestedFunction();
console.log(getStartTime()); // unixtime_1
// FILE_2
// import ClassOrNestedFunction from FILE_0
const {getStartTime} = await ClassOrNestedFunction();
console.log(getStartTime()); // unixtime_not1
Знаю, что можно просто прокинуть ClassOrNestedFunction внутри FILE_1 когда он запускает FILE_2
Т.е. вот так:
// FILE_1
// import ClassOrNestedFunction from FILE_0
// import file2 from FILE_2
const ClassOrNestedFunctionInited = await ClassOrNestedFunction();
const {getStartTime} = ClassOrNestedFunctionInited;
console.log(getStartTime()); // unixtime_1
// ...
file2(ClassOrNestedFunctionInited);
Источник: Stack Overflow на русском