2016-09-25 2 views
0

Ich versuche, Wrapper-Modul für Fileupload-Funktion zu erstellen. Unten Code scheint für mein Szenario gut zu funktionieren, vor kurzem stieß ich auf rxjs, und würde gerne wissen, wie ich unter Ansatz zu Observable konvertieren kann. Was ist der Vorteil gegenüber dem Versprechen?Rxjs Alternative für Versprechen Ansatz

http://mono.software/2014/07/07/Creating-NodeJS-modules-with-both-promise-and-callback-API-support-using-Q/

`` `

// dual-module.js 
var Q = require('q'); 

module.exports = { 
    getFullName: function (firstName, lastName, callback) { 
    var deferred = Q.defer(); 

    if (firstName && lastName) { 
     var fullName = firstName + " " + lastName; 
     deferred.resolve(fullName); 
    } 
    else { 
     deferred.reject("First and last name must be passed."); 
    } 

    deferred.promise.nodeify(callback); 
    return deferred.promise; 
} 
} 

` ``

var DualModule = require('dual-module'); 

DualModule.getFullName("John", "Doe") 
.then(function (result) { 
    // result returns "John Doe" 
}) 
.fail(function (error) { 
    // error returns error message if either first or last name are null or undefined 
}); 


var DualModule = require('dual-module'); 

DualModule.getFullName("John", "Doe", function (error, result) { 
    // error returns error message if either first or last name are null or undefined 
    // result returns "John Doe" 
}); 

Antwort

1

Verwendung nativer Versprechen und RxJS fromPromise

let promise = new Promise((resolve, reject) => { 
    if xxx resolve(yyy) 
    else reject(zzz) 
}) 

let stream$ = Rx.Observable.fromPromise(promise) 
    .map(res => ...) 
    .catch(err => ...) 
+0

Dank sieht das gut aus, – tomalex