Ngrx: Is it possible partially using async pipe?
I am wondering if it's possible partially using async pipe while I use ngrx stroe.
For example,
// ts file
this.name$ = this.store.pipe(
select(SOME.STATE),
map((item) => {
return item.name;
})
)
// html file
<p>{{name$ | async}}</p>
It's simple, but what if I need
// ts file
this.store.pipe(
select(SOME.STATE),
)
.subscribe(item => {
this.name = item.name;
this.age = item.age // <-
})
someMethod() {
const age = this.age;
// ...some processes using 'age' data which from store
}
// html file
<p>{{name}}</p>
Like above, if I have multiple data and I have to do some post-process( such as someMethod()
), I am not sure how to handle async pipe.
No more async pipe means also I have to unsubscribe
manually which make more verbose code.
I have tried the below
// ts file
this.name$ = this.store.pipe(
select(SOME.STATE),
map((item) => {
return item.name;
})
)
this.store.pipe(
select(SOME.STATE),
)
.subscribe(item => {
this.age = item.age
})
someMethod() {
const age = this.age;
// ...some processes using 'age' data which from store
}
// html file
<p>{{name$ | async}}</p>
Working but I am wondering if there is better way.
Thanks.

add a comment |
I am wondering if it's possible partially using async pipe while I use ngrx stroe.
For example,
// ts file
this.name$ = this.store.pipe(
select(SOME.STATE),
map((item) => {
return item.name;
})
)
// html file
<p>{{name$ | async}}</p>
It's simple, but what if I need
// ts file
this.store.pipe(
select(SOME.STATE),
)
.subscribe(item => {
this.name = item.name;
this.age = item.age // <-
})
someMethod() {
const age = this.age;
// ...some processes using 'age' data which from store
}
// html file
<p>{{name}}</p>
Like above, if I have multiple data and I have to do some post-process( such as someMethod()
), I am not sure how to handle async pipe.
No more async pipe means also I have to unsubscribe
manually which make more verbose code.
I have tried the below
// ts file
this.name$ = this.store.pipe(
select(SOME.STATE),
map((item) => {
return item.name;
})
)
this.store.pipe(
select(SOME.STATE),
)
.subscribe(item => {
this.age = item.age
})
someMethod() {
const age = this.age;
// ...some processes using 'age' data which from store
}
// html file
<p>{{name$ | async}}</p>
Working but I am wondering if there is better way.
Thanks.

Do you intend to do some process onage
for example and show it in the template?
– jal
Jan 2 at 23:14
In your examples you only usename
in the template. Can you clarify?
– jal
Jan 2 at 23:25
.subscribe(value => this.value = value)
is never a good thing.
– cgTag
Jan 3 at 3:44
add a comment |
I am wondering if it's possible partially using async pipe while I use ngrx stroe.
For example,
// ts file
this.name$ = this.store.pipe(
select(SOME.STATE),
map((item) => {
return item.name;
})
)
// html file
<p>{{name$ | async}}</p>
It's simple, but what if I need
// ts file
this.store.pipe(
select(SOME.STATE),
)
.subscribe(item => {
this.name = item.name;
this.age = item.age // <-
})
someMethod() {
const age = this.age;
// ...some processes using 'age' data which from store
}
// html file
<p>{{name}}</p>
Like above, if I have multiple data and I have to do some post-process( such as someMethod()
), I am not sure how to handle async pipe.
No more async pipe means also I have to unsubscribe
manually which make more verbose code.
I have tried the below
// ts file
this.name$ = this.store.pipe(
select(SOME.STATE),
map((item) => {
return item.name;
})
)
this.store.pipe(
select(SOME.STATE),
)
.subscribe(item => {
this.age = item.age
})
someMethod() {
const age = this.age;
// ...some processes using 'age' data which from store
}
// html file
<p>{{name$ | async}}</p>
Working but I am wondering if there is better way.
Thanks.

I am wondering if it's possible partially using async pipe while I use ngrx stroe.
For example,
// ts file
this.name$ = this.store.pipe(
select(SOME.STATE),
map((item) => {
return item.name;
})
)
// html file
<p>{{name$ | async}}</p>
It's simple, but what if I need
// ts file
this.store.pipe(
select(SOME.STATE),
)
.subscribe(item => {
this.name = item.name;
this.age = item.age // <-
})
someMethod() {
const age = this.age;
// ...some processes using 'age' data which from store
}
// html file
<p>{{name}}</p>
Like above, if I have multiple data and I have to do some post-process( such as someMethod()
), I am not sure how to handle async pipe.
No more async pipe means also I have to unsubscribe
manually which make more verbose code.
I have tried the below
// ts file
this.name$ = this.store.pipe(
select(SOME.STATE),
map((item) => {
return item.name;
})
)
this.store.pipe(
select(SOME.STATE),
)
.subscribe(item => {
this.age = item.age
})
someMethod() {
const age = this.age;
// ...some processes using 'age' data which from store
}
// html file
<p>{{name$ | async}}</p>
Working but I am wondering if there is better way.
Thanks.


asked Jan 2 at 23:11


TéwaTéwa
1571316
1571316
Do you intend to do some process onage
for example and show it in the template?
– jal
Jan 2 at 23:14
In your examples you only usename
in the template. Can you clarify?
– jal
Jan 2 at 23:25
.subscribe(value => this.value = value)
is never a good thing.
– cgTag
Jan 3 at 3:44
add a comment |
Do you intend to do some process onage
for example and show it in the template?
– jal
Jan 2 at 23:14
In your examples you only usename
in the template. Can you clarify?
– jal
Jan 2 at 23:25
.subscribe(value => this.value = value)
is never a good thing.
– cgTag
Jan 3 at 3:44
Do you intend to do some process on
age
for example and show it in the template?– jal
Jan 2 at 23:14
Do you intend to do some process on
age
for example and show it in the template?– jal
Jan 2 at 23:14
In your examples you only use
name
in the template. Can you clarify?– jal
Jan 2 at 23:25
In your examples you only use
name
in the template. Can you clarify?– jal
Jan 2 at 23:25
.subscribe(value => this.value = value)
is never a good thing.– cgTag
Jan 3 at 3:44
.subscribe(value => this.value = value)
is never a good thing.– cgTag
Jan 3 at 3:44
add a comment |
1 Answer
1
active
oldest
votes
Use the tap
operator to do that instead of subscribing.
this.name$ = this.store.pipe(
select(SOME.STATE),
tap(item => this.age = item.age),
map((item) => {
return item.name;
}));
There's still really no reason to do it this way though. Instead you should simply have another observable for example age$
.
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%2f54014372%2fngrx-is-it-possible-partially-using-async-pipe%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
Use the tap
operator to do that instead of subscribing.
this.name$ = this.store.pipe(
select(SOME.STATE),
tap(item => this.age = item.age),
map((item) => {
return item.name;
}));
There's still really no reason to do it this way though. Instead you should simply have another observable for example age$
.
add a comment |
Use the tap
operator to do that instead of subscribing.
this.name$ = this.store.pipe(
select(SOME.STATE),
tap(item => this.age = item.age),
map((item) => {
return item.name;
}));
There's still really no reason to do it this way though. Instead you should simply have another observable for example age$
.
add a comment |
Use the tap
operator to do that instead of subscribing.
this.name$ = this.store.pipe(
select(SOME.STATE),
tap(item => this.age = item.age),
map((item) => {
return item.name;
}));
There's still really no reason to do it this way though. Instead you should simply have another observable for example age$
.
Use the tap
operator to do that instead of subscribing.
this.name$ = this.store.pipe(
select(SOME.STATE),
tap(item => this.age = item.age),
map((item) => {
return item.name;
}));
There's still really no reason to do it this way though. Instead you should simply have another observable for example age$
.
answered Jan 3 at 4:23
ChristianChristian
1,168714
1,168714
add a comment |
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%2f54014372%2fngrx-is-it-possible-partially-using-async-pipe%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
Do you intend to do some process on
age
for example and show it in the template?– jal
Jan 2 at 23:14
In your examples you only use
name
in the template. Can you clarify?– jal
Jan 2 at 23:25
.subscribe(value => this.value = value)
is never a good thing.– cgTag
Jan 3 at 3:44