And*_*rit 6 typescript angular
我尝试简单的应用程序,我点击删除按钮后删除用户.
当我尝试像这样运行服务器时,我then在deleteUser()
组件中遇到错误:
deleteUser(user: User, event: any) {
event.stopPropagation();
this.userService
.deleteUser(user)
.then(res => {
this.httpUsers = this.httpUsers.filter(h => h !== user);
if (this.selectedUser === user) { this.selectedUser = null; }
})
.catch(error => this.error = error);
}
Run Code Online (Sandbox Code Playgroud)
服务:
deleteUser(user: User) {
console.log('Deleting user');
}
Run Code Online (Sandbox Code Playgroud)
错误信息:
app/users.component.ts(46,8):错误TS2339:类型'void'上不存在属性'then'.
错误的第46行是上面的第46行 .then(res => {
谷歌搜索时我发现了这个问题所以我从deleteUser函数中删除了void,但是没有任何改变.
什么提示我做错了什么?
你必须调用delete方法,所以它将返回promise,你可以使用.then(你必须这样做
deleteUser(user: User) {
return this.http.delete(url+id,...).toPromise();
}
Run Code Online (Sandbox Code Playgroud)
如果您要退回承诺,则可以使用.如果要调用REST API然后映射结果,则可以使用subscribe
服务方式
getAudits() {
// console.log('audits' + amplify.store('audits'));
let audits: Audit[] = amplify.store('audits'));
return Promise.resolve(audits);
}
Run Code Online (Sandbox Code Playgroud)
零件
this.auditService.getAudits().then(audits => {
this.audits = audits;
this.updateChart(true);
});
Run Code Online (Sandbox Code Playgroud)
服务方式
getAudits() {
return this.http.get('/rest/batch').map(res => res.json());
}
Run Code Online (Sandbox Code Playgroud)
零件
this.auditService.getAudits().subscribe(audits => {
this.audits = audits;
this.updateChart(true);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26673 次 |
| 最近记录: |