这个 Angular 2 示例中的 Observable 行为究竟是如何工作的?

How exactly works this Observable behavior in this Angular 2 example?

我不太喜欢 JavaScript\TypeScript,我对这段代码的工作原理有以下疑问:

  onGet() {
    this.serverService.getServers()
      .subscribe(
        (servers: any[]) => this.servers = servers,   // an array of anything (or an array of server)
        (error) => console.log(error)
      );
  }

据我所知,onGet() 方法正在调用 getServers() 方法,returns * *Observable,所以它正在订阅这个返回的 Observable 对象。

据我所知,Observable 的概念是:当这个对象发生变化时(当事件被触发时,如果我做错了断言请纠正我),执行与匿名内部函数相关的代码。

但是这里我不太确定这段代码的确切含​​义以及如何正确阅读它:

    (servers: any[]) => this.servers = servers,   // an array of anything (or an array of server)
    (error) => console.log(error)

你能帮我了解一下具体是如何工作的吗?

(servers: any[]) => this.servers = servers,   // an array of anything (or an array of server)
(error) => console.log(error)

等同于

(servers: any[]) => { //success callback
       this.servers = servers;   // an array of anything (or an array of server)
},
(error) => { //error callback
        console.log(error);
}

第一个是success回调,第二个是error回调,根据getServers()

返回的结果执行
   // this function will resolve for a response, which is not an error
   (servers: any[]) => this.servers = servers,
   // this will resolve if the response is an error:
   //either a http error or thrown error
   (error) => console.log(error)

据推测,对 serverService 的调用请求服务器列表,并且 this.servers 是从该列表设置的。如果出现错误(如 4XX 或 5XX 错误),控制台将显示错误。在任何情况下,observable 都将被解析和关闭。对于可以在以后某个时间点更新的 "living" 可观察对象,可以使用某种类型的 Subject.