2016-09-25 11 views
0

私はfileupload機能のためのラッパーモジュールを作成しようとしています。 以下のコードは私のシナリオでうまく動作するように見えますが、最近rxjsが出てきて、Observableへのアプローチを以下のように変換する方法を知りたいと思います。約束よりも何が有利になるでしょうか。Rxjsの代わりに約束のアプローチ

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" 
}); 

答えて

1

使用ネイティブの約束と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

おかげで、これは、よさそうです – tomalex

関連する問題