auto-bind send target functions in broker. ensures listeners exist when needed
This commit is contained in:
parent
6eb7aa3897
commit
c9fdf9f7c0
2 changed files with 6 additions and 2 deletions
|
|
@ -55,7 +55,7 @@ function init() {
|
|||
space.useDefaultKeys(true);
|
||||
|
||||
// trigger space event binding
|
||||
broker.publish('space.init', { space, platform });
|
||||
broker.send.space_init({ space, platform });
|
||||
|
||||
// start worker
|
||||
moto.client.start(`/code/mesh_work?${gapp.version}`);
|
||||
|
|
@ -79,7 +79,7 @@ broker.subscribe('space.init', data => {
|
|||
platform.setColor(platcolor);
|
||||
load.File.load(evt.dataTransfer.files[0])
|
||||
.then(data => {
|
||||
broker.publish('space.load', data);
|
||||
broker.send.space_load(data);
|
||||
})
|
||||
.catch(error => {
|
||||
dbug.error(error);
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ class Broker {
|
|||
constructor() {
|
||||
this.topics = {};
|
||||
this.used = {};
|
||||
this.send = {};
|
||||
}
|
||||
|
||||
topics() {
|
||||
|
|
@ -29,6 +30,9 @@ class Broker {
|
|||
channel = topics[topic] = [];
|
||||
}
|
||||
if (channel.indexOf(listener) < 0) {
|
||||
let send = this.send;
|
||||
let name = topic.replace(/\./g, '_');
|
||||
send[name] = send[name] = this.bind(topic);
|
||||
channel.push(listener);
|
||||
this.publish(".topic.add", topic);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue