angular2 等到 if 条件下的 observable 完成

标签 angular observable

我已经实现了这样的 if 语句

if (this.service.check() ) {
      return true;
    }
    else {
}

这个 if 条件等待后端的响应。但是在 observable 被执行之前,它会进入 else 语句并完成条件,而不在开始时检查 if 条件。

这是我从后端获取数据的可观察方法

public check(){
      this.getActorRole().subscribe(
        (resp => {
          if (resp == true){
             return true
         }

        }),
        (error => {
          console.log(error);
        })
      );
    }
}

那么如何让条件等待直到得到后端的响应

最佳答案

您不能等待 ObservablePromise 完成。您只能订阅它以在它完成或发出事件时收到通知。

public check(){
   return this.getActorRole() // <<<=== add return
   .map(resp => {
          if (resp == true){
             return true
         }
      );
    }
}

那么你可以做

this.service.check().subscribe(value => {
  if (value) {
    return true;
  }
  else {
  }
}

但是如果这段代码的调用者也依赖于你再次需要的返回值

this.service.check()
.map(value => {
  if (value) {
    return true;
  }
  else {
  }
}

然后在调用这段代码的地方执行subscribe()

关于angular2 等到 if 条件下的 observable 完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41912629/

相关文章:

javascript - 使用 knockout.js 将 css 类绑定(bind)到 Observable Array item.chosen 值

javascript - 找不到名称 'require' 。 Angular 2

node.js - 类型 '{header:Header;}' 的参数不可分配给类型 'RequestOptionsArgs' 的参数

html - Primeng p-selectButton 不适用于 Reactive Forms

Angular - 如何正确使用 Services、HttpClient 和 Observables 在我的应用程序中传递对象数组

angular - 异步管道向子组件发送 'null' 值

angular - ngClass 多次调用方法

@Component 的 Angular @Unsubscribe 装饰器

angular - Angular 6 中使用 Observable 的 $q.when、$q.defer 和 defer.promise 的替代品是什么

javascript - Rxjs 可观察等待直到满足某些条件