paraview-glance
Version:
Web application for Visualizing Scientific and Medical datasets
27 lines (21 loc) • 536 B
JavaScript
function newInstance(updateFn, getAllProxiesFn) {
const subscriptions = [];
function removeListeners() {
while (subscriptions.length) {
subscriptions.pop().unsubscribe();
}
}
function listenToProxyChange(proxy) {
subscriptions.push(proxy.onModified(updateFn));
}
function resetListeners() {
removeListeners();
getAllProxiesFn().forEach(listenToProxyChange);
}
return Object.freeze({
removeListeners,
listenToProxyChange,
resetListeners,
});
}
export default { newInstance };