【发布时间】:2019-10-22 19:51:08
【问题描述】:
在我的 Angular 应用程序中,我想在删除后更新列表,但我不知道如何使用 promise
delete(id: any) {
this.missionService.deleteMission(id);
// .then((res) => {
// this.missionsArray$[id] = null;
// this.missionsArray$ = this.getAllMissions();
// }).catch((error) => {
// console.log('error', error);
// });
}
我尝试使用带注释的代码,它可以工作,但是使用相同的数据(没有删除的项目)使我的列表翻倍
我使用这个函数来构建我的列表:
getAllMissions(): any {
this.missionService.readAllMissions().then(response => {
response.forEach(mission => {
if (mission.data.missionCreator === this._auth.user.id) {
mission.data.id = mission.ref['@ref'].id;
this.missionsArray$.push(mission.data);
} else {
this.missionsArray$ = [];
}
});
});
}
还有这个删除一项的功能:
delete(id: any) {
this.missionService.deleteMission(id);
// .then((res) => {
// this.missionsArray$[id] = null;
// this.missionsArray$ = this.getAllMissions();
// }).catch((error) => {
// console.log('error', error);
// });
}
我尝试使用带注释的代码,它可以工作,但是使用相同的数据(没有删除的项目)使我的列表翻倍
你能解释一下如何使用 Promise 进行体面的刷新吗?
【问题讨论】:
-
在你的函数中使用强返回类型,也许还有一些 async+await
-
您的
getAllMissions()不返回列表,它会改变现有的列表。 -
删除项目时需要重新加载任务列表还是直接删除项目而不完全重新加载?
-
你的 getAllMissions 返回什么