这个 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
.
我不太喜欢 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
.