需要帮助与Observables进行数据绑定

zab*_*s20 6 javascript observable angular

这是使用Observables绑定数据的正确方法吗?如果是的话,我的代码又有什么问题,使selectedCourse变量等于undefined?

    this.golfDataService
      .getGolfData(id)
      .subscribe(data => {
        this.selectedCourse = data.data
        console.log(data.data)
      })
    setTimeout(function () { console.log(this.selectedCourse) }, 2000);
  }
Run Code Online (Sandbox Code Playgroud)

我希望两个console.log语句都返回相同的内容,但是只有第一个console.log返回数据,该数据是具有高尔夫球场信息的对象,但是console.log(this.selectedCourse)返回的是未定义的。

jku*_*anc 1

使用箭头功能。然后,根据 getGolfData 调用的速度,您“可能”会获得记录的值。重点是,我们不应该尝试使用计时器来依赖获取数据,而应该以事件驱动的方式开发代码。

this.golfDataService
  .getGolfData(id)
  .subscribe(data => {
    this.selectedCourse = data.data;
    console.log(data.data);
  });
setTimeout(() => console.log(this.selectedCourse), 2000);
Run Code Online (Sandbox Code Playgroud)

  • 我根本没想到这一点,非常感谢!我知道要避免计时器,这只是查看数据是否具有绑定性的快速方法,再次感谢您! (2认同)