【问题标题】:Promise does not trigger then承诺不会触发
【发布时间】:2020-05-07 20:22:47
【问题描述】:

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

【问题讨论】:

    标签: javascript typescript promise


    【解决方案1】:

    Promise.resolve() 只是返回一个新的、已解决的承诺。你需要使用resolve参数传递给promise回调。

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

    【讨论】:

      猜你喜欢
      • 2018-10-20
      • 2017-12-29
      • 1970-01-01
      • 2013-01-13
      • 1970-01-01
      • 1970-01-01
      • 2016-05-07
      • 1970-01-01
      • 2013-11-25
      相关资源
      最近更新 更多