Subscriber not assigned on Observable create
I am doing this in code in order to handle multiple views from multiple components
https://stackblitz.com/edit/angular-cy8jza
(check the console for the error)
export class ViewGroup {
_onViewChanged: any;
OnViewChanged$ : Observable<any>;
_onViewAdded: any;
OnViewAdded$ : Observable<any>;
_onViewRemoved: any;
OnViewRemoved$ : Observable<any>;
viewsSet = new Set<string>();
currentView = "";
previousView = "";
constructor(){
this.OnViewChanged$ = Observable.create(obs => this._onViewChanged = obs);
this.OnViewAdded$ = Observable.create(obs => this._onViewAdded = obs);
this.OnViewRemoved$ = Observable.create(obs => this._onViewRemoved = obs);
}
}
somnwhere in the code I do
this._availableView.set(name, new ViewGroup());
and then call
this._availableView.get(group)._onViewAdded.next(view);
but I can't call the next on it, it s say undefined.
It's exactly the same procedure has
this.onGroupAdded$ = Observable.create(e => this._onGroupAdded = e)
but this one work in stackblitz.
EDIT : I found out that the method I pass inside the create is not called until I subscribe to it. I have to do this to make everything works :
this.OnViewChanged$ = Observable.create((obs) => {this._onViewAdded = obs});
this.OnViewAdded$ = Observable.create((obs) => {this._onViewAdded = obs});
this.OnViewRemoved$ = Observable.create((obs) => {this._onViewAdded = obs});
this.OnViewChanged$.subscribe();
this.OnViewAdded$.subscribe();
this.OnViewRemoved$.subscribe();
Is there any way to avoid it ?
angular events rxjs observable
add a comment |
I am doing this in code in order to handle multiple views from multiple components
https://stackblitz.com/edit/angular-cy8jza
(check the console for the error)
export class ViewGroup {
_onViewChanged: any;
OnViewChanged$ : Observable<any>;
_onViewAdded: any;
OnViewAdded$ : Observable<any>;
_onViewRemoved: any;
OnViewRemoved$ : Observable<any>;
viewsSet = new Set<string>();
currentView = "";
previousView = "";
constructor(){
this.OnViewChanged$ = Observable.create(obs => this._onViewChanged = obs);
this.OnViewAdded$ = Observable.create(obs => this._onViewAdded = obs);
this.OnViewRemoved$ = Observable.create(obs => this._onViewRemoved = obs);
}
}
somnwhere in the code I do
this._availableView.set(name, new ViewGroup());
and then call
this._availableView.get(group)._onViewAdded.next(view);
but I can't call the next on it, it s say undefined.
It's exactly the same procedure has
this.onGroupAdded$ = Observable.create(e => this._onGroupAdded = e)
but this one work in stackblitz.
EDIT : I found out that the method I pass inside the create is not called until I subscribe to it. I have to do this to make everything works :
this.OnViewChanged$ = Observable.create((obs) => {this._onViewAdded = obs});
this.OnViewAdded$ = Observable.create((obs) => {this._onViewAdded = obs});
this.OnViewRemoved$ = Observable.create((obs) => {this._onViewAdded = obs});
this.OnViewChanged$.subscribe();
this.OnViewAdded$.subscribe();
this.OnViewRemoved$.subscribe();
Is there any way to avoid it ?
angular events rxjs observable
add a comment |
I am doing this in code in order to handle multiple views from multiple components
https://stackblitz.com/edit/angular-cy8jza
(check the console for the error)
export class ViewGroup {
_onViewChanged: any;
OnViewChanged$ : Observable<any>;
_onViewAdded: any;
OnViewAdded$ : Observable<any>;
_onViewRemoved: any;
OnViewRemoved$ : Observable<any>;
viewsSet = new Set<string>();
currentView = "";
previousView = "";
constructor(){
this.OnViewChanged$ = Observable.create(obs => this._onViewChanged = obs);
this.OnViewAdded$ = Observable.create(obs => this._onViewAdded = obs);
this.OnViewRemoved$ = Observable.create(obs => this._onViewRemoved = obs);
}
}
somnwhere in the code I do
this._availableView.set(name, new ViewGroup());
and then call
this._availableView.get(group)._onViewAdded.next(view);
but I can't call the next on it, it s say undefined.
It's exactly the same procedure has
this.onGroupAdded$ = Observable.create(e => this._onGroupAdded = e)
but this one work in stackblitz.
EDIT : I found out that the method I pass inside the create is not called until I subscribe to it. I have to do this to make everything works :
this.OnViewChanged$ = Observable.create((obs) => {this._onViewAdded = obs});
this.OnViewAdded$ = Observable.create((obs) => {this._onViewAdded = obs});
this.OnViewRemoved$ = Observable.create((obs) => {this._onViewAdded = obs});
this.OnViewChanged$.subscribe();
this.OnViewAdded$.subscribe();
this.OnViewRemoved$.subscribe();
Is there any way to avoid it ?
angular events rxjs observable
I am doing this in code in order to handle multiple views from multiple components
https://stackblitz.com/edit/angular-cy8jza
(check the console for the error)
export class ViewGroup {
_onViewChanged: any;
OnViewChanged$ : Observable<any>;
_onViewAdded: any;
OnViewAdded$ : Observable<any>;
_onViewRemoved: any;
OnViewRemoved$ : Observable<any>;
viewsSet = new Set<string>();
currentView = "";
previousView = "";
constructor(){
this.OnViewChanged$ = Observable.create(obs => this._onViewChanged = obs);
this.OnViewAdded$ = Observable.create(obs => this._onViewAdded = obs);
this.OnViewRemoved$ = Observable.create(obs => this._onViewRemoved = obs);
}
}
somnwhere in the code I do
this._availableView.set(name, new ViewGroup());
and then call
this._availableView.get(group)._onViewAdded.next(view);
but I can't call the next on it, it s say undefined.
It's exactly the same procedure has
this.onGroupAdded$ = Observable.create(e => this._onGroupAdded = e)
but this one work in stackblitz.
EDIT : I found out that the method I pass inside the create is not called until I subscribe to it. I have to do this to make everything works :
this.OnViewChanged$ = Observable.create((obs) => {this._onViewAdded = obs});
this.OnViewAdded$ = Observable.create((obs) => {this._onViewAdded = obs});
this.OnViewRemoved$ = Observable.create((obs) => {this._onViewAdded = obs});
this.OnViewChanged$.subscribe();
this.OnViewAdded$.subscribe();
this.OnViewRemoved$.subscribe();
Is there any way to avoid it ?
angular events rxjs observable
angular events rxjs observable
edited Nov 20 '18 at 5:09
Crocsx
asked Nov 20 '18 at 5:03
CrocsxCrocsx
5141416
5141416
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
If I understand your case correctly, I think what you are looking for is a subject.
You are correct that observables don't run until they get subscribed to. You can find many references to that in all sorts of docs, for example: angular docs for observables.
So instead of creating the observables using the create method. Try declaring them as subjects. Check out how they are being used in angular docs here for more details: https://angular.io/guide/component-interaction#parent-and-children-communicate-via-a-service.
I went over this documentation, but I think I interpreted it wrongly, because I reimplemented everything and it work like charm... I closed the other post, cause yo usolve booth problem with this. thank you !
– Crocsx
Nov 20 '18 at 5:34
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53386519%2fsubscriber-not-assigned-on-observable-create%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
If I understand your case correctly, I think what you are looking for is a subject.
You are correct that observables don't run until they get subscribed to. You can find many references to that in all sorts of docs, for example: angular docs for observables.
So instead of creating the observables using the create method. Try declaring them as subjects. Check out how they are being used in angular docs here for more details: https://angular.io/guide/component-interaction#parent-and-children-communicate-via-a-service.
I went over this documentation, but I think I interpreted it wrongly, because I reimplemented everything and it work like charm... I closed the other post, cause yo usolve booth problem with this. thank you !
– Crocsx
Nov 20 '18 at 5:34
add a comment |
If I understand your case correctly, I think what you are looking for is a subject.
You are correct that observables don't run until they get subscribed to. You can find many references to that in all sorts of docs, for example: angular docs for observables.
So instead of creating the observables using the create method. Try declaring them as subjects. Check out how they are being used in angular docs here for more details: https://angular.io/guide/component-interaction#parent-and-children-communicate-via-a-service.
I went over this documentation, but I think I interpreted it wrongly, because I reimplemented everything and it work like charm... I closed the other post, cause yo usolve booth problem with this. thank you !
– Crocsx
Nov 20 '18 at 5:34
add a comment |
If I understand your case correctly, I think what you are looking for is a subject.
You are correct that observables don't run until they get subscribed to. You can find many references to that in all sorts of docs, for example: angular docs for observables.
So instead of creating the observables using the create method. Try declaring them as subjects. Check out how they are being used in angular docs here for more details: https://angular.io/guide/component-interaction#parent-and-children-communicate-via-a-service.
If I understand your case correctly, I think what you are looking for is a subject.
You are correct that observables don't run until they get subscribed to. You can find many references to that in all sorts of docs, for example: angular docs for observables.
So instead of creating the observables using the create method. Try declaring them as subjects. Check out how they are being used in angular docs here for more details: https://angular.io/guide/component-interaction#parent-and-children-communicate-via-a-service.
answered Nov 20 '18 at 5:28
lupus137lupus137
27317
27317
I went over this documentation, but I think I interpreted it wrongly, because I reimplemented everything and it work like charm... I closed the other post, cause yo usolve booth problem with this. thank you !
– Crocsx
Nov 20 '18 at 5:34
add a comment |
I went over this documentation, but I think I interpreted it wrongly, because I reimplemented everything and it work like charm... I closed the other post, cause yo usolve booth problem with this. thank you !
– Crocsx
Nov 20 '18 at 5:34
I went over this documentation, but I think I interpreted it wrongly, because I reimplemented everything and it work like charm... I closed the other post, cause yo usolve booth problem with this. thank you !
– Crocsx
Nov 20 '18 at 5:34
I went over this documentation, but I think I interpreted it wrongly, because I reimplemented everything and it work like charm... I closed the other post, cause yo usolve booth problem with this. thank you !
– Crocsx
Nov 20 '18 at 5:34
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53386519%2fsubscriber-not-assigned-on-observable-create%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown