簡體   English   中英

通過內部的http.get可以觀察到

[英]Observable with an http.get inside

我從角度開始。

我正在嘗試創建一個Observable來加載並放入緩存數據。 我希望從我的應用程序的HomeComponent上預訂此可觀察的對象,當可觀察的對象因為它完成而對其執行ping操作時,我將出現按鈕

但是,我有一個問題,我有一個http.get可以從函數中獲取數據:charger_data()然后,如果我成功獲取了數據,我將對其進行轉換並將其放入緩存中

我想我的主要功能:charger_data_et_cache()返回一個可觀察到的

我沒有做到這一點,請你能幫我!

謝謝

  public charger_data_et_cache(force:boolean) : Observable<boolean>{ this.charger_data().subscribe( (value) => { console.log('Observable change ! => ' + value); charger_cache(value); }, (error)=> { console.log('Observable error!'); }, () => { console.log('Observable complete!'); } ) return Observable.create( observer => { }); } public charger_data():Observable<string>{ return this.http.get('/assets/txt/mystere.txt',{responseType: 'text'}).pipe( map(data => { return data; }),catchError( error => { return throwError( 'error : ' + error ) }) ); } public charger_cache(data:string){ //do stuff } 

我已經發現 !

public charger_data_et_cache(force:boolean) : Observable<boolean>{

    if(force == false && MystereService.mystere_charge){
      return Observable.create((observer) => observer.complete());
    }
    return this.charger_data(force).pipe(map(data => {
        this.charger_cache(data);
        console.log('charger_cache ok');
        return true;
    }),catchError( error => {
        return throwError( 'error' )
      }));

  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM