var readInfo = function (fileName) {
var defer = q.defer();
fs.readFile(fileName, {encoding:'utf-8'}, function (err, data) {
if(err){
defer.reject(err)
}else{
defer.resolve(data)
}
})
return defer.promise;
}
readInfo('count.txt')
.then(function(data){
console.log("pro::",data)
},function(){
})
通过创建一个具有promise属性的defer对象,如果成功获取到值则调用defer.resolve(value),
如果失败,则调用defer.reject(reason),最后返回defer的promise属性即可。这个过程可以理解为调用defer.resolve将Promise的状态变成Fulfilled,调用defer.reject将Promise的状态变成Rejected。