2017-05-11 3 views
1

Aktuell können eine beobachtbare erstellen explizit erstellen, wie folgt:Wie eine RxJs beobachtbare von einem Knoten Anfrage

const Rx = require("rxjs"); 
const request = require("request"); 

     return Rx.Observable.create(function (observer) { 
      request(options, function (error, response, body) { 
       if (error) { 
        observer.error(error); 
       } else { 
        observer.next(response); 
        observer.complete(); 
       } 
      }); 
     }); 

Gibt es eine Abkürzung Weg, dies mit der RxJs Bibliothek (oder einer anderen Bibliothek) zu tun?

+2

'bindNodeCallback' http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#static-method-bindNodeCallback –

+0

Sie sind bereits mit RxJS Bibliothek zu tun ... – martin

Antwort

0

Hier ist meine Lösung:

return (options) => { 
     const boundCallback = Rx.Observable.bindNodeCallback(request, toResponseOnly); 
     return boundCallback(options); 
    }; 

function toResponseOnly(response) { 
    return response; 
} 

Die zweite Funktion ist nur die Antwort, um sicherzustellen, erforderlich ist, weitergegeben wird, da sonst die params an die Callback als ein Array weitergegeben.

Verwandte Themen