我不是那么喜欢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()方法正在调用返回** Observable的 getServers()方法,所以它正在订阅这个返回的Observable对象。
据我所知,Observable的概念是:当这个对象发生变化时(当事件被触发时,如果我做错了断言就纠正我),执行与匿名内部函数相关的代码。
但是在这里我不太确定这段代码的确切含义以及如何正确阅读它:
(servers: any[]) => this.servers = servers, // an array of anything (or an array of server)
(error) => console.log(error)
你能帮助我理解究竟是如何运作的吗?
答案 0 :(得分:1)
(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()
答案 1 :(得分:0)
// 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错误),控制台将显示错误。无论如何,观察将被解决和关闭。对于生活"可观察的,可以在某个时间点更新,可以使用某种类型的Subject
。