angular - ngrx 效果给出类型 'void' 不可分配给类型 'ObservableInput'

标签 angular rxjs ngrx ngrx-effects ngrx-store

@Injectable()
export class ApiSearchEffects {

  @Effect()
  search$: Observable<any>
    = this.actions$
    .ofType(query.ActionTypes.QUERYSERVER)
    .debounceTime(300)
    .map((action: query.QueryServerAction) => action.payload)
    .switchMap(payload => {
      console.log(payload);
      const nextSearch$ = this.actions$.ofType(query.ActionTypes.QUERYSERVER).skip(1);

      this.searchService.getsearchresults(payload)
        .takeUntil(nextSearch$)
        .map((response) =>
          ({type: '[Search] Change', payload: response}
          ))
    });

上面的代码给出了类型为“(payload: any) => void”的参数不可分配给类型为“(value: any, index: number) => ObservableInput”的参数。 类型“void”不可分配给类型“ObservableInput”。 哪里可能是错误的。我在 https://github.com/ngrx/effects/blob/master/docs/intro.md 关注了 ngrx 效果官方介绍。 .

最佳答案

问题是你的 switchMap 应该返回一个值;它会像您拥有的那样返回 void。

试试这个

  return this.searchService.getsearchresults(payload)
        .takeUntil(nextSearch$)

关于angular - ngrx 效果给出类型 'void' 不可分配给类型 'ObservableInput',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44559480/

相关文章:

javascript - 项目以与 RxJS 中预期顺序相反的顺序记录

angular - NgRx 效果 - 映射操作以进行顺序服务调用并更新存储

angular - 由于 Google 匿名使用数据问题,CircleCI 构建失败

javascript - 导入 ReactiveFormsModule 后 Angular 路由器停止工作

angular - 如何将同一个可观察对象与多个映射一起使用?

javascript - Angular - Apollo : Client has not been defined yet

javascript - Angular2 通过 Observable 进行兄弟通信 - 最佳实践?

javascript - api 调用在一种方法中工作但在另一种方法中不起作用 ---TypeError : Cannot read property 'getResponse' of undefined

angular - 在 rxjs/ngrx 效果中链接 Action 的正确方法是什么

typescript - NgRx createAction 方法返回类型签名的含义