Angular 6 返回 Observable

r3plica

我是 Angular 的新手(使用 AngularJs 很多年了),我正在努力使用 Observables :( 我有这个方法:

filterProducts(categoryId: string, questions: Question[], organisationId: string): Observable<any> {
  var formulas = this.formulaService.getFromSelectedAnswers(questions);
  let shouldFilter = this.shouldFilterProducts(categoryId, questions, formulas);
  if (!shouldFilter) return;

  return this.filterOrScore(categoryId, organisationId, formulas).pipe(map(products => {
    if (!products || !products.length) return;

    this.products.length = 0;
    this.products.push.apply(this.products, products);
    this.questionService.filterQuestionsByProducts(products, questions);      
    this.questionService.updateSession(questions);
  }));
}

线路if (!shouldFilter) return;不对。我需要它返回一个 Observable 以便我的订阅工作。有谁知道这是怎么做到的吗?

苏雷什·库马尔·阿里亚

如果您不关心订阅中的返回值,则可以返回空值。这将完成 observable。

import {empty} from 'rxjs';

filterProducts(categoryId: string, questions: Question[], organisationId: string): Observable<any> {
  var formulas = this.formulaService.getFromSelectedAnswers(questions);
  let shouldFilter = this.shouldFilterProducts(categoryId, questions, formulas);
  if (!shouldFilter) return empty();

  return this.filterOrScore(categoryId, organisationId, formulas).pipe(map(products => {
    if (!products || !products.length) return empty();

    this.products.length = 0;
    this.products.push.apply(this.products, products);
    this.questionService.filterQuestionsByProducts(products, questions);      
    this.questionService.updateSession(questions);
  }));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Angular HttpClient返回期望observable <HttpEvent <any>而不是observable <any>

Angular 2-直接从Observable返回数据

从Angular 2服务创建和返回Observable

从Angular2服务返回空的Observable

角度:从FileReader返回Observable / ES6承诺

Angular 6-期望验证器在异步验证器中返回Promise或Observable

HttpParams与Angular 6中的Put和Post将返回类型更改为Observable <HttpEvent <T >>一起使用

Angular4返回带有嵌套Observable的Observable

Angular 6将值追加到Observable

返回Observable并订阅angular

如何从Angular 7中的Observable返回对象

Angular 8 Observable返回“ _isScalar:false ...”

Angular 2 Observable Service从localStorage返回数据

Angular 2 http - 在返回之前过滤 observable

angular 4 observable 返回 [object Object]

在 observable 响应数组 angular 6 中订阅多个 observable

Angular - Observable 错误的布尔返回语句

在 Angular 6 中使用 Observable 的问题

使用 Angular、RxJs 6 和 InMemoryAPI 如何获得似乎嵌套在多个 observable 源中的返回 Observable 值?

Angular 6 等待 Observable

Angular 6 Observable 和订阅

Angular 8 从函数返回 Observable<boolean>

如何显示 Angular Observable 返回的 JSON?

Angular 9 从 Observable 返回 Observable

Angular 方法返回 http observable

在 Angular 中返回 observable 之前添加验证

面临返回 Observable<boolean> Angular 的问题

在 Rxjs Angular 中將 Observable 的屬性返回為 Observable

Angular catchError 并返回 observable