У меня очень большой массив (10 КБ), и я хочу разделить его (я сделал в соответствии с этим: https://stackoverflow.com/a/8495740/2183053, и это сработало), но мне нужно передать tempArray для запроса и ждать ответа, который будетбыть переданным в savetodb.
Может кто-нибудь помочь мне, пожалуйста.Чтобы было ясно, я хочу разделить большой массив и передать разделенные массивы в функцию запроса, затем перейти к сохранению в db и продолжить этот процесс, пока все массивы не будут очищены.
следующий код, который я сделал:
//i used waterfall because it worked in waiting to finish the first task before starting another
async.waterfall([
async.apply(handleFile, './jsonFile.json')
runRequest1,
savetoDb
], function(err) {
console.log('waterfall1 complete')
})
function handleFile(data, callback) {
var name
var authorNames = []
require('fs').readFile(data, 'utf8', function(err, data) {
if (err) throw err
var content = _.get(JSON.parse(data), [2, 'data'])
for (var x = 0; x < content.length; x++) {
authorNames.push(JSON.stringify(content[x]['author']))
}
//the large array is authorNames and im splitting it below:
for (i = 0, j = authorNames.length; i < j; i += chunk) {
temparray = authorNames.slice(i, i + chunk);
setTimeout(function() {
callback(null, temparray)
}, 2000);
}
})
}