2017-06-05 45 views
0

我花了几个小时在过去的几天试图找出如何做一个回调从我从一个节点模块导入的函数中获取数据,并在一个天蓝色的函数中与context.res一起使用它。如何在Azure函数中对从节点模块导入的函数执行函数回调?

我不明白回调不够好,无法回头来解决这个问题,或者我完全不在基地。

module.exports = function (context, req) { 
 

 
var QuickBooks = require('node-quickbooks') 
 
var qboAuth = require('./config') 
 
var consumerKey = qboAuth.consumerKey 
 
var consumerSecret = qboAuth.consumerSecret 
 
var oauthToken = qboAuth.token 
 
var oauthTokenSecret = qboAuth.tokenSecret 
 
var realmId = qboAuth.realmId 
 

 
    var qbo = new QuickBooks(consumerKey, 
 
         consumerSecret, 
 
         oauthToken, 
 
         oauthTokenSecret, 
 
         realmId, 
 
         false, // use the sandbox? 
 
         true); // enable debugging? 
 
       
 
    
 
    qbo.getAccount(req.query.id, function(err, account) { 
 
      context.log(account) 
 
      
 
    }); 
 
    
 
context.res = { 
 
    body: account 
 
} 
 
     
 

 
context.done() 
 
}

所以在qbo.getAccount()函数输出正常,但是通过它的发展意味着我用我不能得到这个输出context.res的context.log(帐户)= {}。

我认为这是复杂的运行在Azure功能沙箱,但我不知道。

有人能指点我正确的方向吗?

感谢,

回答

0

功能getAccount()应该是一个异步功能,您可以将Azure的功能分配,功能齐全步入回调表达。例如。

qbo.getAccount(req.query.id, function(err, account) { 
    context.log(account); 
    context.res = { 
     body: account 
    } 
    context.done() 
    } 
); 
+0

感谢您的回复加里,工作! 我之前做过这件事,但它没有奏效,但是我刚刚发现我的一个输入变量有一个错字,因为我对这个概念有点肯定。再次感谢 –