2017-09-09 20 views
0

オブジェクトのリストを取得して、それらをモバイルアプリに送り返そうとしています。私はちょうど実際にいくつかの難しさを持っていますの後forEachループが終了しました。Node.JSは、API呼び出しのループの後に応答を送信します。

変数 "data"を配列に追加してループ外に送信しようとしましたが、配列は空です。明らかに、データが取得されていますが、時間内に配列にプッシュされません。

res.send()を呼び出す前にループが終了していることを確認するにはどうすればよいですか?できるだけシンプルにするためにコードを減らしました。

答えて

0

APIからの応答を記録します。すべての応答を受け取った場合は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) { 
     var pending= transactions.data.length; 
     transactions.data.forEach(function(item) { 
      stripe.transfers.retrieve(item.id, function(err, transfer) { 
       pending--; 
       if (err) { 
        return console.log(err); 
       }; 
       var data = { 
        amount: item.amount, 
        created: item.created 
       }; 
       if (pending == 0) { 
        res.send(array); 
       } 
      }); 
     }); 
    }); 
}; 
+0

ありがとうございました – Lucas