Node.JS在循环api调用后发送响应

时间:2017-09-09 02:21:57

标签: javascript node.js loops express asynchronous

我正在尝试检索对象列表并将其发送回我的移动应用。我只是遇到了一些困难,实际上在之后发送了 forEach循环结束。

我尝试将变量“data”附加到数组并将其发送到循环外但数组为空。显然,有数据被检索,但它没有按时被推入数组。

在调用res.send()之前,如何确保循环结束?我尽可能地减少了代码,使其尽可能简单。

var stripe = require("stripe")("stripe_key");

exports.fetchTransactions = function(req, res) {

var account = req.body.account;

stripe.transfers.list({ destination: account}, function(err, transactions) {
 transactions.data.forEach(function(item) {
  stripe.transfers.retrieve(item.id, function(err, transfer) {
    if (err) {
      console.log(err);
    };
    var data = {
      amount: item.amount,
      created: item.created
    };
    // Can't call res.send(data) inside the loop because res.send() can only be called once.
    // But if I call res.send(array) outside of the loop, the array is still empty
   });
  });
 });
};

1 个答案:

答案 0 :(得分:0)

跟踪API的响应。收到所有回复后,请致电 import { BrowserRouter, Route, Switch } from 'react-router-dom'; <Provider store={store}> <BrowserRouter> <div> <Switch> <SidebarContainer /> <MainContainer /> </Switch> </div> </BrowserRouter> </Provider>

res.send