Это то, что я делаю: я использую async.eachSeries для множественного вызова функции, которая возвращает точки массива ForFormating. И каждый раз, когда я вызываю эту функцию, я форматирую точки массива ForFormating и помещаю результат в массивы pointsFormated. Я хочу вернуть этот массив pointsFormated как json файл. Из-за множественного вызова функции это означает, что имеется несколько json файлов. Я написал код для функции обратного вызова, но он не работает корректно с async.eachSeries. Какие-либо предложения?
http.createServer(function(req, res) {
console.log('Receving request...');
var callback = function(err, result) {
res.setHeader('Content-disposition', 'attachment; filename=nameForJsonFile.json');
res.writeHead(200, {
'Content-Type' : 'text/json'
});
console.log('json:', result);
res.end(result);
};
async.eachSeries(arrayOfQueryData, function(queryData, callback) {
console.log("Query data: " + queryData);
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'xxxx',
password : 'xxxx',
database : 'xxxx',
port: 3306
});
connection.connect();
var json = '';
var data = queryData + '%';
var query = 'SELECT LNG, LAT FROM table WHERE postcode LIKE "' + data;
connection.query(query, function(err, results, fields) {
if (err)
return callback(err, null);
if(results.length > 0)
{
var arrayOfPoints = new Array();
for(var i=0; i<results.length; i++)
{
arrayOfPoints[i] = new Array();
arrayOfPoints[i][0] = results[i].LNG;
arrayOfPoints[i][1] = results[i].LAT;
}
//do something with points and get result in array named for example,
//pointsForFormating
var pointsFormated = new Array();
for(var i=0; i<hullPoints.length; i++)
{
pointsFormated[i] = {lng: pointsForFormating[i][0], lat:pointsForFormating[i][1]};
}
json = JSON.stringify(pointsFormated);
connection.end();
console.log('JSON-result:\n', json);
callback(null, json);
}
else
{
console.log("No results for: \n" + queryData + "\n");
connection.end();
callback(null, json);
}
})
});
}
).listen(9999);
console.log("Server started @ localhost:9999");
eachSeries(arr, iterator, callback)
вас нет обратного вызова