How should I return data
09:37 14 Aug 2021

I'm trying to understand and implement a simple app. I've got two express servers, first is only sending a plain object and the second is fetching it.

Inside the second app, I want to build a class - Loader, that will provide fetch and get (data) methods.

class Loader{
    constructor(){
        this.data = {data:"some data"}
    }

    async fetchData(){
        const res = await axios.get("http://localhost:5000/data");
        if(res) {
            this.data = res.data
            console.log(this.data)
            return res.data
        }
    }

    getData(){
        return this.data
    }

    async getFetchedData(){
        await this.fetchData();
        console.log(this.data)
        this.getData();
    }
}

But actually it doesn't work the way I wanted it. I'd like to implement a method that will return the fetched object.

const testLoader = new Loader();
testLoader.getFetchedData();
const testVar = testLoader.getData();
console.log("test", testVar)

The output is:

test { data: 'some data' }
data from fetchData { data: 'test data after fetching' }
data from getFetchedData { data: 'test data after fetching' }

And I understand - getData is sync and the rest methods are async, so that's the order of performance. But how do I need to rewrite code to receive method that will return the fetched object?

javascript promise