Обещание не срабатывает тогда - PullRequest
0 голосов
/ 07 мая 2020

У меня есть обещание в TypeScript, что я хочу срабатывать при загрузке некоторых данных, но .then никогда не достигается. Что я здесь делаю не так?

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...'));
    };
}

1 Ответ

4 голосов
/ 07 мая 2020

Promise.resolve() просто возвращает новое решенное обещание. Вам необходимо использовать параметр resolve, переданный в обратный вызов обещания.

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.
}
...