Skip to content

Instantly share code, notes, and snippets.

@iampava
Last active July 17, 2017 13:47
Show Gist options
  • Save iampava/86a4d58549668be51c0abda709f58520 to your computer and use it in GitHub Desktop.
Save iampava/86a4d58549668be51c0abda709f58520 to your computer and use it in GitHub Desktop.
class Bootstrap {
constructor() {
this.initObj = { value: false }; //This object keeps the state
//Server data retrieval
Observable.merge(firstObs, secondObs)
.take(2)
.subscribe(
resp => this.masterSetup(resp),
err => console.error(`Error: ${err}`),
() => initObj.value = true
)
}
isInitialized() {
return Observable.create(observer => {
if (initObj.value === true || typeof Object.getOwnPropertyDescriptor(initObj, 'value').set === 'function') {
//already has the setter so we're sure it has been initialized
observer.next(true);
observer.complete();
} else {
Object.defineProperty(initObj, 'value', {
set: function(val) {
observer.next(val);
observer.complete();
}
});
}
});
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment