I am trying to retrieve JSON from a server as an initial state. But it looks like the function doesn't wait for the response.
I looked at different Stackoverflow posts like How to return return from a promise callback with fetch? but the answers I found didn't seem to help.
// Get the best initial state available
// 1. Check for local storage
// 2. Use hardcoded state with the test value from the server.
export function getInitialState() {
    if (localStorage.getItem('Backup') != undefined) {
        return returnValue = Map(JSON.parse(localStorage.getItem('Backup')))
    } else {
        var returnValue = initialState
        const GetJSON = (url) => {
            let myHeaders = new Headers();
            let options = {
                method: 'GET',
                headers: myHeaders,
                mode: 'cors'
            };
            return fetch(url, options).then(response => response.json());
        };
        GetJSON('https://example.com/api/v1/endpoint/valid/').then(result => {
            // Console.log gives a good result
            console.log(result)
            // The return is undefined
            return returnValue.setIn(['test'], result)
        });
    }    
}
In this case, I receive an undefined while I expect a returnValue JSON where the test property is updated from the server.
So I really want the function getInitialState() to return the state. And to do this it needs to wait for the fetch to finish. I also tried to place return before the GetJSON but this had no effect.
Oke, so I just tried the following:
GetJSON('https://example.com/api/v1/endpoint/valid/').then(result => {
    console.log('aaa')
    console.log(result)
    localstorage.setItem('init', result)
    console.log('bbb')
}).then(result => {
    console.log('done')
});
This returns aaa and result. But the localStorage is never set, and the bbb and done are never shown.
