Executing a function after another one has completed in Angular 6

I need to run 2 methods in the ngOnInit() lifecycle hook, with method2() being executed only after method1() has completed. These methods are not performing HTTP requests and both belong to the same component.

  ngOnInit() {
    this.method1();
    this.method2(); //should only be called once method1() is done
  }

  method1() {
    //do something
  }

  method2() {
    //do something, but should only start after method1 is finished
  }

What would be the most effective solution for this issue?

Answer №1

Your code is functioning perfectly. If no asynchronous tasks are being executed, the default behavior is to run one function, statement, or expression after another...

Even when an asynchronous task is called, all subsequent statements and expressions are still processed synchronously until the call stack is completed. The asynchronous task is placed in the event loop for later execution.

Examples of asynchronous tasks include not only HTTP requests, but also functions like setTimeout and setInterval.

To learn more about the event loop, you can visit this link.

Answer №2

Why not simply invoke the method2 within the method1 if there are no asynchronous tasks to be performed?

ngOnInit() {
  this.method1();
}

method1() {
  //do something

  //once method1 operations are done, call this.method2
  this.method2();
}

method2() {
  //perform actions that must wait until method1 is completed
}

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Calculating the time difference between two dates in the format yyyy-MM-ddTHH:mm:ss.fffffff can be done by following these steps

Can someone help me figure out how to calculate the difference in days between the date and time 2021-02-23T08:31:37.1410141 (in the format yyyy-MM-ddTHH:mm:ss.fffffff) obtained from a server as a string, and the current date-time in an Angular application ...

Here is a unique rewrite of the text: "Converting to TypeScript: Add the Node Modules Path to the global paths array in the 'module' module using

Utilizing vue ui, I initiated a vue project with typescript and subsequently integrated electron, iview, and less... After addressing the lexical issues in the *.ts files, running the vue-cli-service serve task in vue ui yielded the following output: Tot ...

Challenges with importing and using jspdf and autotable-jspdf in Angular 8

Issue with Generating PDF Using Angular 8, JSPDF, and JSPDF-AutoTable I am facing a challenge with exporting/generating a PDF based on an HTML grid. I need to make some DOM changes with CSS, remove toggle buttons, alter the header, etc. However, all the s ...

Is it advisable to reuse encapsulated constants during unit testing and if so, what is the best

Hey there, I'm currently working on a unit test for a function. While the technical details are not crucial, I thought it would be helpful to provide some code snippets for better understanding. Check out the function below: export function getSalu ...

Modify multiple elements in a nested array by utilizing the $set and $push operators

Here is an example of the Workspace document that needs box positions updated when dragged and dropped on the front end. { "_id": ObjectId("5eaa9b7c87e99ef2430a320b"), "logo": { "url": ".../../../assets/logo/dsdsds.png", "name": "testUpload" }, "n ...

Angular issue: Unable to scroll to top after route change and loading a new component

In the process of developing a simple Angular application, I encountered an issue. When navigating from my home page to the services page, scrolling down, and then returning to the home page, the scroll position is always set to the bottom of the page. My ...

Tips for utilizing ng2-dragula and resizing Angular elements efficiently

Currently, I am employing Dragula for drag-and-drop functionality in my tables. Additionally, I am utilizing the angular resizer element plugin for table column resizing. These features are being implemented within Angular2. However, I am facing an issue ...

How can I extract the initial item with a value from a service response in an array of objects using Angular 2?

My numbers array is currently empty and I need to populate it with the first price value from an API response. Here is the API response: [ {"productID":1,"productName":"Phone","price":19.96}, {"productID":3,"productName":"Phones","price":18.96}, {"product ...

Encountering ENOENT error: The specified file or directory does not exist, when trying to access 'C:Users itrathodDesktopAngular ode_modules' in an Angular 11 project

Every time I attempt to launch the Angular app, an error message pops up stating the following: An unhandled exception occurred: ENOENT: no such file or directory, lstat 'C:\Users\nitrathod\Desktop\Angular\node_modules' ...

What is the recommended way to retrieve the Nuxt `$config` within Vuex state? Can it only be accessed through store action methods?

After using the dotenv library for my .env file, I had to change the runtimeConfig in order to secure my project's secret key. In my most recent project, I utilized nuxt version "^2.14" in SPA mode, so I only utilized "publicRuntimeConfig" in my nuxt ...

Minimize the gap between legend text and icon in Highchart

Is there a way to decrease the space between the number and icon? I am currently working with Angular 8 and Highchart. Below is the configuration of the chart legend. https://i.stack.imgur.com/0dL7y.jpg this.legend = { align: 'center', verti ...

Issue with resolving symbol JSON in Angular 7 when using JSON.stringify

Let me start off by saying that I am new to Angular 7. Currently, I am in the process of developing an application using Angular 7 with a C# backend. The specific challenge I am facing is the need to serialize an object in my component/service before sendi ...

Using NodeJS API gateway to transfer image files to S3 storage

I have been attempting to upload an image file to S3 through API Gateway. The process involves a POST method where the body accepts the image file using form-data. I crafted the lambda function in TypeScript utilizing the lambda-multipart-parser. While it ...

What is the best way to change the number 123456789 to look like 123***789 using either typescript or

Is there a way to convert this scenario? I am working on a project where the userID needs to be displayed in a specific format. The first 3 characters/numbers and last 3 characters/numbers should be visible, while the middle part should be replaced with ...

Change the spread operator in JavaScript to TypeScript functions

I'm struggling to convert a piece of code from Javascript to Typescript. The main issue lies in converting the spread operator. function calculateCombinations(first, next, ...rest) { if (rest.length) { next = calculateCombinations(next, ...res ...

Strange occurrences observed while looping through an enum in TypeScript

Just now, I came across this issue while attempting to loop through an enum. Imagine you have the following: enum Gender { Male = 1, Female = 2 } If you write: for (let gender in Gender) { console.log(gender) } You will notice that it iter ...

"Customizing the properties of an Angular Material mat-slide-toggle: A step-by-step

<mat-slide-toggle>Slide Me!</mat-slide-toggle> https://i.stack.imgur.com/p1hzD.png https://i.stack.imgur.com/aCzs1.png Is it possible to customize the toggle-thumb-icon to increase its length and position it at the end of the bar? ...

ESLint is unable to locate the OnInit function within the "@angular/core" module

There seems to be an error: import { Component, OnInit, Input, ViewChild, ElementRef } from "@angular/core"; OnInit not found in '@angular/core'eslintimport/named The code appears to be functioning correctly, so perhaps there is a m ...

Retrieve particular key from document in MongoDB based on provided value

My Document retrieval process looks like this: async findOne(id: string) { return await this.gameModel.findById(id); } async update(id: string, updateGameDto: UpdateGameDto) { const game = await this.findOne(id) // This code snippet prints al ...

I'm diving into the world of Typescript and trying to figure out how to use tooltips for my d3 stacked bar chart. Any guidance on implementing mouseover effects in Typescript would be greatly

I am currently facing some issues with the code below and need guidance on how to proceed. I am new to this and unsure of how to call createtooltip. Any assistance would be greatly appreciated. The error message states that createtooltip is declared but n ...