在Angular 2中完成另一个调用时调用一个调用

时间:2018-02-01 01:32:18

标签: angular angular2-template angular2-services publish-subscribe angular2-directives

我有一个场景,我想从列表中删除一个项目,然后刷新页面以显示列表,暗示该项目确实已从列表中删除。

以下是我的相同代码。 DELETE_APPLICATION当前删除应用程序,GET_INSIGHT_APPLICATIONS获取应用程序列表。但是,由于它发生得太快,一个接一个,列表还显示已删除的应用程序。如果我刷新页面(调用GET_INSIGHT_APPLICATIONS),列表会从列表中正确删除该项目。

handleDeleteApplication(applicationName: string, versionNumber: string, biEngine: string): void {
        console.log('came inside the handleDeleteApplication application, engine =='+biEngine);
        this.store.dispatch({ type: DELETE_APPLICATION, payload: { applicationName : applicationName, applicationEngine : biEngine, versionNumber : versionNumber } });
        console.log('done with dispatch');

        console.log('about to call GET_INSIGHT_APPLICATIONS');
        (this.store.dispatch({ type: GET_INSIGHT_APPLICATIONS }));
        console.log('done with GET_INSIGHT_APPLICATIONS');
    }

我被告知订阅第一个活动的完成。但是,我无法弄清楚我是如何做到这一点的。请举个例子。

1 个答案:

答案 0 :(得分:0)

在这种情况下,您需要订阅delete以及完成后重新加载数据。

示例:

this.myService.delete(id)
  subscribe(result => {
    if(result.isSuccess){
      this.myService.getItems()
        .subscribe(items => {
          this.items = items;
        });
    }
});