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;
}







0















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.










share|improve this question





























    0















    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.










    share|improve this question

























      0












      0








      0








      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.










      share|improve this question














      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 angular typescript






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 29 '18 at 6:39









      PearlPearl

      61921842




      61921842
























          3 Answers
          3






          active

          oldest

          votes


















          0














          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.






          share|improve this answer































            0














            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
            }
            });

            }





            share|improve this answer































              0














              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 :)






              share|improve this answer


























              • 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












              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
              });


              }
              });














              draft saved

              draft discarded


















              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









              0














              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.






              share|improve this answer




























                0














                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.






                share|improve this answer


























                  0












                  0








                  0







                  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.






                  share|improve this answer













                  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.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 29 '18 at 6:41









                  SiddAjmeraSiddAjmera

                  16.2k31240




                  16.2k31240

























                      0














                      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
                      }
                      });

                      }





                      share|improve this answer




























                        0














                        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
                        }
                        });

                        }





                        share|improve this answer


























                          0












                          0








                          0







                          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
                          }
                          });

                          }





                          share|improve this answer













                          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
                          }
                          });

                          }






                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Nov 29 '18 at 9:09









                          rafi muhammadrafi muhammad

                          2417




                          2417























                              0














                              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 :)






                              share|improve this answer


























                              • 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
















                              0














                              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 :)






                              share|improve this answer


























                              • 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














                              0












                              0








                              0







                              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 :)






                              share|improve this answer















                              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 :)







                              share|improve this answer














                              share|improve this answer



                              share|improve this answer








                              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



















                              • 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


















                              draft saved

                              draft discarded




















































                              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.




                              draft saved


                              draft discarded














                              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





















































                              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







                              Popular posts from this blog

                              Lallio

                              Unable to find Lightning Node

                              Futebolista