Nodejs Synchronous Для каждого цикла

Я хочу сделать для каждого цикла, но синхронно. Каждая итерация цикла будет выполнять вызов http.get, и он будет возвращать json для вставки значений в базу данных. Проблема в том, что цикл for выполняется асинхронно, и это приводит к тому, что все http.get запускаются одновременно, и моя база данных не заканчивает вставку всех данных. Я использую async-foreach, чтобы попытаться сделать то, что я хочу это делать, но мне не нужно использовать его, если я могу сделать это правильно.

mCardImport = require('m_cardImport.js');
var http = require('http');
app.get('/path/hi', function(req, res) {

mCardImport.getList(function(sets) {
  forEach(sets, function(item, index, arr) {
    theUrl = 'http://' + sets.set_code + '.json';
    http.get(theUrl, function(res) {

      var jsonData = '';
      res.on('data', function(chunk) {
        jsonData += chunk;
      });

      res.on('end', function() {
        var theResponse = JSON.parse(jsonData);
        mCardImport.importResponse(theResponse.list, theResponse.code, function(theSet) {
          console.log("SET: " + theSet);
        });
      });
    });
  });
});
});

и моя модель

exports.importResponse = function(cardList, setCode, callback) {

mysqlLib.getConnection(function(err, connection) {

forEach(cardList, function(item, index, arr) {

  var theSql = "INSERT INTO table (name, code, multid, collector_set_num) VALUES "
   + "(?, ?, ?, ?) ON DUPLICATE KEY UPDATE id=id";
  connection.query(theSql, [item.name, setCode, item.multid, item.number], function(err, results) {
    if (err) {
      console.log(err);
    };
  });
});
});
callback(setCode);
};

Ответы на вопрос(5)

Ваш ответ на вопрос