【发布时间】:2016-03-03 16:12:58
【问题描述】:
我正在使用Sails JS 和Braintree 开发应用程序。我正在尝试发送客户过去的所有交易细节。
这是我的 getTransaction 操作
getTransaction: function(req, res) {
var customerId = req.param('customerId');
var gateway = setUpGateway();
var stream = gateway.transaction.search(function(search) {
search.customerId().is(customerId);
}, function(err, response) {
if (err) {
return res.serverError(err);
}
res.send(response);
});
},
但问题是,如果我直接发送从 Braintree 服务器获得的响应,它会抛出 circular dependency error。所以,为了克服这个错误,我只从这样的响应中获取我需要的那些细节
getTransaction: function(req, res) {
var customerId = req.param('customerId');
var gateway = setUpGateway();
var stream = gateway.transaction.search(function(search) {
search.customerId().is(customerId);
}, function(err, response) {
if (err) {
return res.serverError(err);
}
var transactions = [];
response.each(function(err, transaction) {
var temp = [];
temp.push(transaction.id);
temp.push(transaction.amount);
temp.push(transaction.createdAt);
transactions.push(temp);
});
res.send(transactions);
});
},
但是这里.each 函数正在异步执行,因此res.send 返回空数组。那么我应该怎么做才能返回用户所做的所有交易呢?
【问题讨论】:
标签: javascript node.js sails.js braintree