简体   繁体   中英

Wait for Http Request complete before executing next line after subscribe in angular2

Can you please answer to question in comment

class TextComp 
{

result: string;
constructor() {

    this.getdata().subscribe(result => {
        console.log("result received");
        this.result = result;
    });

    console.log("called before result received " + this.result);

    //this.result is NULL/UNDEFINED because this line executed before data received

    // So how we can eliminate this situation??? or
    // Is there any way to make synchronus call to http in angular 2
}

getdata() {
    return http.get('test.json')
        .map(response => response.json());
}
}

So how we can eliminate this situation??? or Is there any way to make synchronus call to http in angular 2

if you need to make synchronous calls in this case your code should be something like:

this.getdata().subscribe(result => {
    console.log("result received");
    this.result = result;
    //function or snippet which will be called after subscribe is complete...     
});

because your subscribe method works asynchronously. I recommend you also to take a look at promises .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM