2017-05-10 1 views
2

I einen Winkel 2 ServiceRxJs Wie Ausnahme in ReplaySubject auslösen?

import * as localforage from "localforage"; 
import { ReplaySubject } from 'rxjs/ReplaySubject'; 

@Injectable() 
export class CommentService { 
    private localForage = require("localforage"); 

    addComment (myvalue: string): Observable<Comment[]> { 
     var reply:ReplaySubject<any> = new ReplaySubject(1); 
     localforage.setItem(that.key, that.elencoCommenti).then(function (value) { 
      //throw new Error("Value cannot be 3"); 
      reply.throw(Error('Error2'));   
      //    reply.next(value); 
      //    reply.complete(); 
     }); 
     return reply; 
    } 

} 

Dieser Dienst cointains eine Ausnahme, ein Verfahren zur Erhöhung. Wenn ich versuche,

submitComment(){ 
    // Variable to hold a reference of addComment 
    let commentOperation:Observable<string>; 

    commentOperation = this.commentService.addComment(this.model) 

    // Subscribe to observable 
    commentOperation.subscribe(
          comments => { 
           console.log('ok:'); 
           console.log(comments); 
          }, 
          err => { 
           // Log errors if any 
           console.log('error:'); 
           console.log(err); 
          }); 
} 

ich die Fehlermeldung nicht zu abonnieren. Wie raise Ausnahme in ReplaySubject?

Antwort

5

reply.error("some error"); sollte es tun.


aber ich würde vorschlagen, Sie nicht einen Fehler in einem ReplaySubject zu werfen - wie jeder Fehler wird die Subject finalisieren und unbrauchbar für zukünftige Verwendung machen und automatisch alle Abonnenten austragen - es sei denn, das ist, was Sie wollen hier erreichen.

Verwandte Themen