使用 GET 请求将数据传递给组件
Passing data to component using GET request
每次向组件传递新的 data/URL 并使用 NgFor 对其进行循环时,如何将服务中检索到的数据传递回组件?我想使用承诺而不是可观察的。
澄清一下:Service(A) 需要在每次数据更改时将其对象传递给 Component(B),然后使用 NgFor 对其进行循环。提前致谢
这是我的代码:
服务(A)
receiveEvent(eventId){
return fetch(eventId).then(res => res.json())
.then((data:any) => {
console.log(data);
});
接收组件(B)
requestEvent(requestUrl){
this._clientService.receiveEvent(requestUrl)
}
您可以 return 在 finally 回调中承诺和解决:
服务
fetch(URL: string): Promise < any > {
return new Promise(resolve => {
this.http.get(URL)
.subscribe(response => {
console.debug("response = %O", response);
// set data locally
this.myVariable = data[0]["myVarible"];
}, error => {
console.error(error);
}, () => { // finally
resolve();
})
});
}
调用组件构造函数
this.myService.fetch(URL).then(() => {
console.log(this.myService.myVariable);
});
除非您使用的是 websockets,否则您将不得不频繁地轮询数据库以获取新数据;将调用组件构造函数的提取包装在 setInterval
中
每次向组件传递新的 data/URL 并使用 NgFor 对其进行循环时,如何将服务中检索到的数据传递回组件?我想使用承诺而不是可观察的。
澄清一下:Service(A) 需要在每次数据更改时将其对象传递给 Component(B),然后使用 NgFor 对其进行循环。提前致谢
这是我的代码:
服务(A)
receiveEvent(eventId){
return fetch(eventId).then(res => res.json())
.then((data:any) => {
console.log(data);
});
接收组件(B)
requestEvent(requestUrl){
this._clientService.receiveEvent(requestUrl)
}
您可以 return 在 finally 回调中承诺和解决:
服务
fetch(URL: string): Promise < any > {
return new Promise(resolve => {
this.http.get(URL)
.subscribe(response => {
console.debug("response = %O", response);
// set data locally
this.myVariable = data[0]["myVarible"];
}, error => {
console.error(error);
}, () => { // finally
resolve();
})
});
}
调用组件构造函数
this.myService.fetch(URL).then(() => {
console.log(this.myService.myVariable);
});
除非您使用的是 websockets,否则您将不得不频繁地轮询数据库以获取新数据;将调用组件构造函数的提取包装在 setInterval