【发布时间】:2016-09-25 02:35:20
【问题描述】:
我正在尝试为文件上传功能创建包装模块。 下面的代码看起来很适合我的场景,最近我遇到了 rxjs,想知道如何将下面的方法转换为 Observable。与承诺相比有什么优势。
```
// 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"
});
【问题讨论】:
标签: node.js promise rxjs rxjs5