代码之家  ›  专栏  ›  技术社区  ›  Kingamere

Typescript-在arrow函数中更新变量

  •  0
  • Kingamere  · 技术社区  · 6 年前

    我有这样一个函数:

    private data: MyCustomDataObject;
    private getData(): boolean {
        let val: boolean = true;   // variable declared
        this.service.callMethod().subscribe(data => {
            this.data = data;
            if (data == null) {
                val = false;   // val declared above is not updating
            } 
        });
    return val; // this is still true, should be false
    }
    

    怎么会 val

    1 回复  |  直到 6 年前
        1
  •  2
  •   Michael Hulet    6 年前

    这里发生的是 subscribe 接受您赋予它的函数,并将其挂起以备以后发生某些事件时使用。当你传递它的时候,它实际上并不运行你的函数。正因为如此 getData val 从来没有改变过 返回。如果你想让它回来 false ,你需要换衣服 在您传递给的回调之外 订阅