以加法为例
--return类型
return.js文件:
var obj = {};
obj.sum = function(a, b){
var sum = a+b;
return sum;
}
module.exports = obj;
--callback类型
callback.js文件:
var obj = {};
obj.sum = function(a, b ,callback){
var sum = a+b;
callback(null,sum)
}
module.exports = obj;
--测试
test.js文件:
var returns = require('./return.js');
var callback = require('./callback.js');
//return
var sum = returns.sum(3, 5);
console.log('return sum :', sum);
//callback
callback.sum(3, 5, function(err,result){
console.log('callback sum :',result);
})
结果
总结
return这种封装一般都是处理字符串,日期什么的.
nodejs本身是异步的,所以大部分封装都会用callback这种类型,建议只要和业务逻辑有关的最好都用异步封装.
-- Promise风格
promise.js
var Promise = require('bluebird')
var obj = {};
obj.sum = function(a, b){
var sum = a+b;
returnnew Promise(function(resolve, reject) {
if (sum < 100) {
//成功操作,对应 then方法
resolve(sum)
}
else {
//失败操作,对应catch方法
reject('总和不能大于100')
}
})
}
module.exports = obj;
测试
var promise = require('./promise');
promise.sum(10,3).then(function(sum){
console.log('sum :',sum);
}).catch(function(err){
console.log('err :',err);
})
小于100就打印值,大于100就提示错误.
上面这个例子Promise是引用的第三方bluebird模块,
在目前的版本,Promise已经是nodejs的内置对象,可以直接引用,估计nodejs的异步代码书写风格也会朝着Promise发展了.
意外金喜的博客 :
http://blog.csdn.net/zzwwjjdj1
郑重申明,发表的文章都是我自己博客原创的,这是技术分享,再被封就不在这里玩了. ╭(╯^╰)╮