Когда вызывается .on
, pu sh обратный вызов в массиве обратных вызовов, сохраненных объектом. Затем, всякий раз, когда запускается .on
, повторяйте все обратные вызовы в массиве и вызывайте их (и, возможно, передавайте также аргумент ошибки):
class MyClass {
onCallbacks = [];
on(someArg, callback) {
this.onCallbacks.push(callback);
}
invokeOK() {
this.onCallbacks.forEach((callback) => {
callback();
});
}
invokeError() {
this.onCallbacks.forEach((callback) => {
callback(new Error('foo'));
});
}
}
const onError = console.error;
const obj = new MyClass();
obj.on('value', err => {
if (err) {
onError(err.message);
} else {
console.log("Inserimento ok");
}
});
obj.invokeError();
obj.invokeOK();