angular – 在使用ngrx时完成调度后执行代码
在我的示例Angular 2应用程序中,我使用ngrx / store和ngrx / effects进行状态管理.
下面是组件中添加新项目的功能之一. addAuthor() { this.store.dispatch(addAuthorAction(this.fg.value)); console.log('2') } 在上面的代码“this.store.dispatch(addAuthorAction(this.fg.value));”中负责对服务器进行AJAX调用并添加新作者 因为“this.store.dispatch(addAuthorAction(this.fg.value));”是一个异步操作,即使在AJAX调用之前,也会执行console.log(“2”)语句 我的问题是,需要修改什么才能在store.dispatch完成后执行console.log. 解决方法
快速回答:你做不到.
正如你所说,dispatch是异步的. 你应该做的是使用@ngrx/effects.它与使用addAuthorAction几乎相同,除了不是调用一个函数,你“捕获”调度的动作,并在它们被减速器应用之后做一些事情. 所以我希望我一般来说,就是我将我的行动分成3个,例如: > FETCH_USER仅用于切换布尔值,因此我可以在获取用户时显示微调器 所以在你的例子中,如果你想在FETCH_USER_SUCCESS之后调试console.log,只需使用另一个效果来捕获FETCH_USER_SUCCESS并在此处执行你想做的事情. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |