2016-08-04 9 views
0

子関数から親関数への値をNode.jsに入れて、その値を別のファイルで使用します。非同期フローなので、d.promiseの出力は保留中です。
ファイルのqueryCheck変数のarangoFunction.jsファイルに渡されたデータで、d.promiseの値を取得するにはどうすればよいですか?使用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' } 

答えて

1

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 
}); 
関連する問題