如何在Node.js中将子函数的值返回父函数?
问题描述:
我想要一个Node.js
中的父子函数的子函数值,并在另一个文件中使用该值。异步流程d.promise
的输出正在等待处理。
如何获得d.promise
的值与site.js
文件中的queryCheck
变量中的arangoFunction.js
文件中传递的数据一致?如何在Node.js中将子函数的值返回父函数?
数据库使用:ArangoDB
site.js片断
var arangoFunc = require('./arangoFunction'), queryCheck;
queryCheck = arangoFunc.saveData(data, roleCollection, res);
console.log(queryCheck);
arangoFunction.js片断site.js的
var q = require('q');
var d = q.defer();
exports.saveData = function(data, collectionName, res){
var collectionData = db.collection(collectionName);
collectionData.save(data, function(e, o){
if(e) {
console.error(e);
res.status(e.response.statusCode).send(e.response.statusMessage);
d.reject(false);
}
else {
res.send(data);
d.resolve(data);
}
});
return d.promise;
}
输出代码段
个
{ state: 'pending' }
答
arangoFunction.js
exports.saveData = function(data, collectionName, res){
var collectionData = db.collection(collectionName);
return q.Promise(function(resolve, reject, notify){
collectionData.save(data, function(e, o){
if(e) {
console.error(e.response.statusMessage);
res.status(e.response.statusCode).send(e.response.statusMessage);
reject(e);
}
else {
res.send(data);
resolve(data);
}
});
});
}
site.js
arangoFunc.saveData(data, roleCollection, res).then(function(value){
// do whatever with the returned data
}, function(err){
// error handling
});