【问题标题】:How to return value from child function to parent function in Node.js?如何在 Node.js 中将值从子函数返回到父函数?
【发布时间】:2016-08-04 13:10:15
【问题描述】:

我想要Node.js 中从子函数到父函数的值,并在另一个文件中使用该值。作为异步流,d.promise 的输出处于待处理状态。
如何通过queryCheck 文件中的queryCheck 变量中的arangoFunction.js 文件中传递的数据获得d.promise 的值?

使用的数据库:ArangoDB

site.js sn-p

var arangoFunc = require('./arangoFunction'), queryCheck;
queryCheck = arangoFunc.saveData(data, roleCollection, res);
console.log(queryCheck);

arangoFunction.js sn-p

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;
        }

site.js sn-p 的输出

{ state: 'pending' }

【问题讨论】:

    标签: javascript node.js asynchronous arangodb


    【解决方案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
    });
    

    【讨论】:

      猜你喜欢
      • 2020-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-02
      • 2015-11-18
      • 1970-01-01
      • 1970-01-01
      • 2020-11-30
      相关资源
      最近更新 更多