尝试让这个ngrx $serializedString = pg_unescape_bytea($contentsOfPostGresByteAField);
使用http调用。
@Effect
如果我交换下面的简单回报就行了
@Effect()
loadPosts$ = this.actions$
.ofType(post.ActionTypes.LOAD)
.map(() => {
return this.postService.get()
.map(posts => {
return new post.LoadSuccessAction(posts)})
.catch(() => of(new post.LoadSuccessAction([])));
})
我的return new post.LoadSuccessAction([['one'], ['two']])
postService
方法非常简单
get
不确定可能会导致这种情况或在何处查看。
修改
get() {
return this.http.get(`{this.API_PATH}/api/v1/en/posts?limit=10&offset=0`)
.map(res => res.json());
}
看起来像这样
LoadSuccessAction
答案 0 :(得分:4)
您的服务的结果是一个可观察的结果,并且从您的合成效果中的example[:,0].
运算符返回,看到效果会发出一个可观察的 - 而不是一个动作。
ngrx商店询问map
属性的observable,而不是找到一个,会影响你提到的错误。
RxJS包含几个运算符,它们将映射的observable'展平'到组合的observable中。而你可能想要的是switchMap
。 type
运算符将订阅返回的observable,并将其值发送到组合的observable的值流中。此外,如果在挂起的服务调用完成之前发生了另一个switchMap
操作,则挂起的调用的observable将被取消订阅并被忽略 - 这可能是您想要的行为。
如果您不希望忽略待处理的服务调用,则可以使用concatMap
。