2016-12-09 2 views
0

Предположим, что у нас есть модуль, объявленный таким образом.Реагирование на модуль, импортируемый или созданный в JavaScript ECMA2015

import Stuff from "./stuff"; 
export default { 
    things: { a: 1 }, 
    stuff: Stuff 
} 

Затем мы получаем другой модуль и используем, как показано ниже.

import Donkey from "./stuff-and-things" 
console.log(Donkey.things.a); 
console.log(Donkey.stuff.whatever-field); 

Я хотел бы быть в состоянии реагировать на импортирующей из первого во второе, так что, когда Donkey будет создан (добавлено, включено, впрыскивается там это называется), функция будет срабатывать ,

Что-то вроде этого псевдокода.

import Stuff from "./stuff"; 
export default { 
    constructor: function(){ console.log("I'm alive!"); } 
    things: { a: 1 }, 
    stuff: Stuff 
} 

Возможно ли вообще? Некоторое время я искал googlearching, и я ничего не нашел - никаких предложений о том, как и не отрицать это. Возможно, я использовал неправильные термины из-за незнания предмета.

ответ

2

Невозможно получить уведомление, когда модуль импортируется. Что бы вы могли сделать, я думаю, это экспорт функции. Затем, чтобы делать что-нибудь полезное с этим модулем, сначала нужно вызвать функцию.

Например:

// stuff-and-things 
import Stuff from "./stuff"; 

const api = { 
    things: { a: 1 }, 
    stuff: Stuff 
}; 
export default function() { 
    console.log("I'm alive!"); 
    return api; 
}; 

// other 
import stuffAndThings from "./stuff-and-things" 
const Donkey = stuffAndThings(); 
console.log(Donkey.things.a); 
console.log(Donkey.stuff.whateverField); 
Смежные вопросы