“run”在添加效果时出错。尝试手动返回字符串、数字等,但无效。
效果代码:
@Effect()
getRoles$: Observable<Roles[]> = this.dataPersistence.fetch(CreateActionTypes.GetRoles, {
run: (action: GetRoles) => {
return this.formService
.getRoles()
.pipe(map(roles => {
return new RolesLoaded(roles);
}));
},
onError: (action: GetRoles, error) => {
console.error(error);
return new RolesLoadError(error);
}
});
错误消息:
在应用程序/应用程序/源代码/应用程序/+状态/创建.effects.ts(32,5)中发生错误:
错误TS 2322:
键入'(操作:GetRoles)=〉可观察的 “不能分配给类型”(a:获取角色,状态?:创建部分状态)=〉无效|动作|可观察“。
类型“Observable”不能赋值给类型“*void|动作|可观察 *'。
2条答案
按热度按时间5vf7fwbs1#
一个
@Effect
应该返回一个Action
的可观测值,而不是一个Action[]
,只是Action
。在你的情况下,它似乎是一个混淆之间的倍数概念。
以下是
@Effect
的示例zbwhf8kr2#
这取决于getRoles()返回的内容。我也遇到过类似的错误。如果getRoles()返回promise,则不使用管道。