2017-07-22 6 views
0

Nehmen wir an, ich habe folgende Klasse:Wie verwende ich RxJS in der benutzerdefinierten Klasse?

class XHRUpload { 
    constructor() { 
     // Some AJAX code here and listening on progress event, 
     // and then pass the progress info out of this class. 
    } 
} 

Auch habe ich ein beobachtbares Objekt:

const observable = Rx.Observable.create((obs) => { 
    obs.next(/* progress info here */) 
}) 

Aber wie soll ich das beobachtbare Objekt in der Klasse verwenden, um der Lage sein, es außerhalb der Klasse zu verwenden, ?

Das einzige, was, was kann ich jetzt tun, ist dies:

const observable = Rx.Observable.create((obs) => { 
    new XHRUpload(obs) 

    // Then in the class... 
    obs.next(/* progress info here */) 
}) 

// And then... 
observable.subscribe({ 
    next: value => {/* Progress data... */}, 
    error: err => {/* Something bad has happened! */}, 
    complete:() => {/* Transfer has been completed! */} 
}) 

Aber es wie eine schlechte Praxis scheint, ist es nicht?

Antwort

0

Endlich habe ich es herausgefunden!

const observable = new Rx.Subject() 

observable.subscribe({ 
    next: value => {/* Progress data... */}, 
    error: err => {/* Something bad has happened! */}, 
    complete:() => {/* Transfer has been completed! */} 
}) 

const obj = new XHRUpload(observable) 

Und Klasse wird sein:

class XHRUpload { 
    constructor(observable) { 
     // Some great code here... 

     observable.next(/* some progress data */) 
    } 
} 
Verwandte Themen