angular - 以 Angular 订阅后如何执行某些操作

标签 angular observable subscribe

我想返回一个 bool 值,但是“if”条件中的变量是未定义的。

function() {
    this.menuDataService.getMenu()
      .subscribe(res => {
       this.mainMenus = res.MainMenus;
       console.log(this.mainMenus);
    });

    console.log(this.mainMenus);

    if(this.mainMenus == 1){
       return true;
    }
    else {
      return false;
    }
}

最佳答案

一旦您开始使用可观察对象,您就必须在可观察对象之外的链式方法集中工作。在您的情况下,您可以执行以下操作:

function InnerFunc(){
  return this.menuDataService.getMenu()
  .map(res => {
    if(res.mainMenus == 1){
     return true;
    }
    else{
     return false;
    }
  )
}

function OuterFunc() {
  InnerFunc()
  .subscribe(result =>{
      // will be either true or false
      console.log(result);
  });    
}

关于angular - 以 Angular 订阅后如何执行某些操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44950436/

相关文章:

json - 使用 angular ngx-translate 翻译 json 数组

angular - 禁止在 Angular Material 对话框区域外单击以关闭对话框(使用 Angular 版本 4.0+)

javascript - 为什么let点的值没有被重新分配

Angular 5 - ng 测试 - 请包含 "BrowserAnimationsModule"或 "NoopAnimationsModule"

swift - Rxswift改变观察对象的值

javascript - 处理对 Facebook 的 "Subscribe"按钮的点击

javascript - 如何使用 knockout.js 更新模型更改的 View ?

javascript - rxjs 将 Observable<List<X>> 转换为 Observable<X> 的运算符

node.js - 检测可观察量何时连续两次发出相同的值

php & mysql 订阅搜索/匹配查询