代码之家  ›  专栏  ›  技术社区  ›  Vingtoft

角度创建一个可观察的不工作

  •  2
  • Vingtoft  · 技术社区  · 6 年前

    在Angular6,我正在创建一个 Injectable 服务。我正在尝试初始化 一个 Observable constructor ,请参见下面的简化代码。

    问题: 的回调函数 Observable.create 从不执行,也没有错误。为什么是 console.log('authObserver created!') 没打过电话?

    import { Observable, Observer } from 'rxjs';
    
    @Injectable()
    export class UserLoginService implements OnInit{
    
      authObserver:Observer;
      authObservable:Observable;
    
      constructor() {
        this.authObservable = Observable.create((observer: Observer) => {
          this.authObserver = observer;
          console.log('authObserver created!')
        });  
      }    
    }
    
    randomCallbackFunction(){
      this.authObserver.next("Button has been clicked");
    }
    
    2 回复  |  直到 6 年前
        1
  •  4
  •   Vikhyath Maiya    6 年前

    在您的代码中,我没有看到任何订阅发生。只有在订阅之后才可观察到。试试这个

    this.authObservable = Observable.create((observer: Observer) => {
          this.authObserver = observer;
          console.log('authObserver created!')
        });
    this.authObservable.subscribe()
    

    Here

        2
  •  1
  •   Javier Aviles    6 年前

    /*
     Create an observable that emits 'Hello' and 'World' on  
     subscription.
    */
     const hello = Rx.Observable.create(function(observer) {
        observer.next('Hello');
        observer.next('World');
     });
    
     //output: 'Hello'...'World'
      const subscribe = hello.subscribe(val => console.log(val));
    

    Fiddle .