Angular service not executed in the same order
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
Typescript Code
SaveEmployee() {
let employeeAge= 0;
employeeAge = GetAge();
if(employeeAge >18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
}
GetAge() {
let age= 0;
this.employeeService.getAge(this.employeeId).subscribe(data => {
age= data; });
return age;
}
I am updating an employee with age condition using angular typescript code. Here the GetAge() method returns always 0. The SaveEmployee() method is executed prior to the age calculation. Please help me resolve the issue.
.net
add a comment |
Typescript Code
SaveEmployee() {
let employeeAge= 0;
employeeAge = GetAge();
if(employeeAge >18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
}
GetAge() {
let age= 0;
this.employeeService.getAge(this.employeeId).subscribe(data => {
age= data; });
return age;
}
I am updating an employee with age condition using angular typescript code. Here the GetAge() method returns always 0. The SaveEmployee() method is executed prior to the age calculation. Please help me resolve the issue.
.net
add a comment |
Typescript Code
SaveEmployee() {
let employeeAge= 0;
employeeAge = GetAge();
if(employeeAge >18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
}
GetAge() {
let age= 0;
this.employeeService.getAge(this.employeeId).subscribe(data => {
age= data; });
return age;
}
I am updating an employee with age condition using angular typescript code. Here the GetAge() method returns always 0. The SaveEmployee() method is executed prior to the age calculation. Please help me resolve the issue.
.net
Typescript Code
SaveEmployee() {
let employeeAge= 0;
employeeAge = GetAge();
if(employeeAge >18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
}
GetAge() {
let age= 0;
this.employeeService.getAge(this.employeeId).subscribe(data => {
age= data; });
return age;
}
I am updating an employee with age condition using angular typescript code. Here the GetAge() method returns always 0. The SaveEmployee() method is executed prior to the age calculation. Please help me resolve the issue.
.net
.net
asked Nov 29 '18 at 6:39
PearlPearl
61921842
61921842
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
IT won't. Because employeeService.getAge(...) would return the response asynchronously. To fix that, do this:
async SaveEmployee() {
let employeeAge = 0;
employeeAge = await GetAge();
if (employeeAge > 18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
}
async GetAge() {
let age = 0;
const age = await this.employeeService.getAge(this.employeeId).toPromise();
return age;
}
Here we're using the latest ES2018 async await syntax that works with promises.
I've instead of subscribeing to the Observable that is returned by employeeService.getAge(...), converted it into a Promise by using toPromise()
Then I can use await on it and then do the needful.
add a comment |
The http post or http get service call will work asynchronously.
You can write second write code like below:
SaveEmployee() {
let employeeAge= 0;
this.employeeService.getAge(this.employeeId).subscribe(data => {
employeeAge= data;
if(employeeAge >18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
});
}
add a comment |
Your async method will be running in a different thread - So i think you wont get the age before the subscribe completes and rest of the code doesn't wait - you can move the logic inside you subscribe like this
this.employeeService.getAge(this.employeeId).subscribe((data) => {
if(data >18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
});
Hope that works - happy coding :)
Update:
You can use promise to get the data try something like this
GetAge() {
return new Promise(res => {
this.employeeService.getAge(this.employeeId).subscribe(data => {
res(data);
});
});
}
While reading the data from the promise
SaveEmployee() {
let employeeAge= 0;
this.GetAge().then((res) => {
if(res >18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
});
}
Otherwise you can send the data to another function and process the logic there I'm not sure that's the right way because you end up in creating a method that is dependable only for the function
GetAge() {
this.employeeService.getAge(this.employeeId).subscribe(data => {
SomeMethod(data);
});
}
I think promise might help you - Happy coding :)
Yes, but how to resolve the issue if we proceed with the way mentioned in this Question?
– Pearl
Nov 29 '18 at 9:25
I have updated my code please check :)
– Rahul
Nov 29 '18 at 11:10
@pearl did you find anyone of it working ?
– Rahul
Dec 6 '18 at 6:08
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%2f53533198%2fangular-service-not-executed-in-the-same-order%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
IT won't. Because employeeService.getAge(...) would return the response asynchronously. To fix that, do this:
async SaveEmployee() {
let employeeAge = 0;
employeeAge = await GetAge();
if (employeeAge > 18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
}
async GetAge() {
let age = 0;
const age = await this.employeeService.getAge(this.employeeId).toPromise();
return age;
}
Here we're using the latest ES2018 async await syntax that works with promises.
I've instead of subscribeing to the Observable that is returned by employeeService.getAge(...), converted it into a Promise by using toPromise()
Then I can use await on it and then do the needful.
add a comment |
IT won't. Because employeeService.getAge(...) would return the response asynchronously. To fix that, do this:
async SaveEmployee() {
let employeeAge = 0;
employeeAge = await GetAge();
if (employeeAge > 18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
}
async GetAge() {
let age = 0;
const age = await this.employeeService.getAge(this.employeeId).toPromise();
return age;
}
Here we're using the latest ES2018 async await syntax that works with promises.
I've instead of subscribeing to the Observable that is returned by employeeService.getAge(...), converted it into a Promise by using toPromise()
Then I can use await on it and then do the needful.
add a comment |
IT won't. Because employeeService.getAge(...) would return the response asynchronously. To fix that, do this:
async SaveEmployee() {
let employeeAge = 0;
employeeAge = await GetAge();
if (employeeAge > 18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
}
async GetAge() {
let age = 0;
const age = await this.employeeService.getAge(this.employeeId).toPromise();
return age;
}
Here we're using the latest ES2018 async await syntax that works with promises.
I've instead of subscribeing to the Observable that is returned by employeeService.getAge(...), converted it into a Promise by using toPromise()
Then I can use await on it and then do the needful.
IT won't. Because employeeService.getAge(...) would return the response asynchronously. To fix that, do this:
async SaveEmployee() {
let employeeAge = 0;
employeeAge = await GetAge();
if (employeeAge > 18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
}
async GetAge() {
let age = 0;
const age = await this.employeeService.getAge(this.employeeId).toPromise();
return age;
}
Here we're using the latest ES2018 async await syntax that works with promises.
I've instead of subscribeing to the Observable that is returned by employeeService.getAge(...), converted it into a Promise by using toPromise()
Then I can use await on it and then do the needful.
answered Nov 29 '18 at 6:41
SiddAjmeraSiddAjmera
16.2k31240
16.2k31240
add a comment |
add a comment |
The http post or http get service call will work asynchronously.
You can write second write code like below:
SaveEmployee() {
let employeeAge= 0;
this.employeeService.getAge(this.employeeId).subscribe(data => {
employeeAge= data;
if(employeeAge >18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
});
}
add a comment |
The http post or http get service call will work asynchronously.
You can write second write code like below:
SaveEmployee() {
let employeeAge= 0;
this.employeeService.getAge(this.employeeId).subscribe(data => {
employeeAge= data;
if(employeeAge >18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
});
}
add a comment |
The http post or http get service call will work asynchronously.
You can write second write code like below:
SaveEmployee() {
let employeeAge= 0;
this.employeeService.getAge(this.employeeId).subscribe(data => {
employeeAge= data;
if(employeeAge >18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
});
}
The http post or http get service call will work asynchronously.
You can write second write code like below:
SaveEmployee() {
let employeeAge= 0;
this.employeeService.getAge(this.employeeId).subscribe(data => {
employeeAge= data;
if(employeeAge >18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
});
}
answered Nov 29 '18 at 9:09
rafi muhammadrafi muhammad
2417
2417
add a comment |
add a comment |
Your async method will be running in a different thread - So i think you wont get the age before the subscribe completes and rest of the code doesn't wait - you can move the logic inside you subscribe like this
this.employeeService.getAge(this.employeeId).subscribe((data) => {
if(data >18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
});
Hope that works - happy coding :)
Update:
You can use promise to get the data try something like this
GetAge() {
return new Promise(res => {
this.employeeService.getAge(this.employeeId).subscribe(data => {
res(data);
});
});
}
While reading the data from the promise
SaveEmployee() {
let employeeAge= 0;
this.GetAge().then((res) => {
if(res >18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
});
}
Otherwise you can send the data to another function and process the logic there I'm not sure that's the right way because you end up in creating a method that is dependable only for the function
GetAge() {
this.employeeService.getAge(this.employeeId).subscribe(data => {
SomeMethod(data);
});
}
I think promise might help you - Happy coding :)
Yes, but how to resolve the issue if we proceed with the way mentioned in this Question?
– Pearl
Nov 29 '18 at 9:25
I have updated my code please check :)
– Rahul
Nov 29 '18 at 11:10
@pearl did you find anyone of it working ?
– Rahul
Dec 6 '18 at 6:08
add a comment |
Your async method will be running in a different thread - So i think you wont get the age before the subscribe completes and rest of the code doesn't wait - you can move the logic inside you subscribe like this
this.employeeService.getAge(this.employeeId).subscribe((data) => {
if(data >18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
});
Hope that works - happy coding :)
Update:
You can use promise to get the data try something like this
GetAge() {
return new Promise(res => {
this.employeeService.getAge(this.employeeId).subscribe(data => {
res(data);
});
});
}
While reading the data from the promise
SaveEmployee() {
let employeeAge= 0;
this.GetAge().then((res) => {
if(res >18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
});
}
Otherwise you can send the data to another function and process the logic there I'm not sure that's the right way because you end up in creating a method that is dependable only for the function
GetAge() {
this.employeeService.getAge(this.employeeId).subscribe(data => {
SomeMethod(data);
});
}
I think promise might help you - Happy coding :)
Yes, but how to resolve the issue if we proceed with the way mentioned in this Question?
– Pearl
Nov 29 '18 at 9:25
I have updated my code please check :)
– Rahul
Nov 29 '18 at 11:10
@pearl did you find anyone of it working ?
– Rahul
Dec 6 '18 at 6:08
add a comment |
Your async method will be running in a different thread - So i think you wont get the age before the subscribe completes and rest of the code doesn't wait - you can move the logic inside you subscribe like this
this.employeeService.getAge(this.employeeId).subscribe((data) => {
if(data >18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
});
Hope that works - happy coding :)
Update:
You can use promise to get the data try something like this
GetAge() {
return new Promise(res => {
this.employeeService.getAge(this.employeeId).subscribe(data => {
res(data);
});
});
}
While reading the data from the promise
SaveEmployee() {
let employeeAge= 0;
this.GetAge().then((res) => {
if(res >18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
});
}
Otherwise you can send the data to another function and process the logic there I'm not sure that's the right way because you end up in creating a method that is dependable only for the function
GetAge() {
this.employeeService.getAge(this.employeeId).subscribe(data => {
SomeMethod(data);
});
}
I think promise might help you - Happy coding :)
Your async method will be running in a different thread - So i think you wont get the age before the subscribe completes and rest of the code doesn't wait - you can move the logic inside you subscribe like this
this.employeeService.getAge(this.employeeId).subscribe((data) => {
if(data >18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
});
Hope that works - happy coding :)
Update:
You can use promise to get the data try something like this
GetAge() {
return new Promise(res => {
this.employeeService.getAge(this.employeeId).subscribe(data => {
res(data);
});
});
}
While reading the data from the promise
SaveEmployee() {
let employeeAge= 0;
this.GetAge().then((res) => {
if(res >18) {
//some logic Code comes here
} else {
//some other logic Code comes here
}
});
}
Otherwise you can send the data to another function and process the logic there I'm not sure that's the right way because you end up in creating a method that is dependable only for the function
GetAge() {
this.employeeService.getAge(this.employeeId).subscribe(data => {
SomeMethod(data);
});
}
I think promise might help you - Happy coding :)
edited Nov 29 '18 at 11:09
answered Nov 29 '18 at 6:51
RahulRahul
1,1492319
1,1492319
Yes, but how to resolve the issue if we proceed with the way mentioned in this Question?
– Pearl
Nov 29 '18 at 9:25
I have updated my code please check :)
– Rahul
Nov 29 '18 at 11:10
@pearl did you find anyone of it working ?
– Rahul
Dec 6 '18 at 6:08
add a comment |
Yes, but how to resolve the issue if we proceed with the way mentioned in this Question?
– Pearl
Nov 29 '18 at 9:25
I have updated my code please check :)
– Rahul
Nov 29 '18 at 11:10
@pearl did you find anyone of it working ?
– Rahul
Dec 6 '18 at 6:08
Yes, but how to resolve the issue if we proceed with the way mentioned in this Question?
– Pearl
Nov 29 '18 at 9:25
Yes, but how to resolve the issue if we proceed with the way mentioned in this Question?
– Pearl
Nov 29 '18 at 9:25
I have updated my code please check :)
– Rahul
Nov 29 '18 at 11:10
I have updated my code please check :)
– Rahul
Nov 29 '18 at 11:10
@pearl did you find anyone of it working ?
– Rahul
Dec 6 '18 at 6:08
@pearl did you find anyone of it working ?
– Rahul
Dec 6 '18 at 6:08
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%2f53533198%2fangular-service-not-executed-in-the-same-order%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