GeekPeek
GeekPeek

Reputation: 1767

Promise does not trigger then

I have a promise in TypeScript that I want to fire when some data is loaded, but the .then is never reached. What am I doing wrong here?

private initHexagonalGrid(): Promise<void>
{
    return new Promise(() =>
    {
        //load grid here...
        Promise.resolve();
    });        
}

public generateWorld()
{
    this.initHexagonalGrid().then(() => 
    {
        //never reached
        console.log('grid loaded, world can load now...'));
    };
}

Upvotes: 0

Views: 218

Answers (1)

robinsax
robinsax

Reputation: 1220

Promise.resolve() simply returns a new, resolved, promise. You need to use the resolve parameter passed to the promise callback.

private initHexagonalGrid(): Promise<void>
{
    return new Promise((resolve) =>
    {
        //load grid here...
        resolve();
    });        
}

public generateWorld()
{
    this.initHexagonalGrid().then(() => 
    {
        //never reached
        // updated: you also had an extra closing paren below
        console.log('grid loaded, world can load now...');
    }); // <-- closing paren belonged here.
}

Upvotes: 4

Related Questions