Я использую Электрон. У меня есть некоторый класс (модуль), где мне нужно послать некоторый сигнал к рендереру. В первый раз, когда я запускаю код, я использую сигнал dom-ready
для запуска кода после загрузки рендерера, и он работает хорошо.
my_function: function() {
var self = this;
self.web_contents.on('dom-ready', () => {
self.web_contents.send('my-signal', {'arg1': 'arg_value1' });
});
Но, во второй раз, когда я запускаю свою функцию, dom и Рендерер уже загружен заранее, поэтому мне не нужно добавлять сюда слушателя, просто отправьте сигнал напрямую
my_function: function() {
var self = this;
self.web_contents.send('my-signal', {'arg1': 'arg_value1' });
self.web_contents.on('dom-ready', () => { // I would not need to do this the second time
self.web_contents.send('my-signal', {'arg1': 'arg_value1' });
});
Я хотел бы сделать что-то вроде этого:
my_function: function() {
var self = this;
if (is_the_dom_ready??) {
self.web_contents.send('my-signal', {'arg1': 'arg_value1' });
} else {
self.web_contents.on('dom-ready', () => {
self.web_contents.send('my-signal', {'arg1': 'arg_value1' });
});
}
Есть ли способ достичь этого? Или какой будет правильный способ сделать это?
Кроме того, возможный обходной путь может заключаться в добавлении флага и обновлении значения, когда dom готов в первый раз:
self.web_contents.on('dom-ready', () => {
self.dom_ready = true
});