Проблема:
В функции 'sysWrite' функция ссылается на 'testArray [i] [1]', который не определен в текущем контексте.
Кроме того, функция 'sysWrite' содержит опечатку, в которой написано '${testArray[i}[1]}.json
', должно быть ${testArray[i][1]}.json
(Вы закрыли индекс массива фигурной скобкой вместо квадратной).
Простое объяснение:
Когда вы вызываете 'sysWrite', все ваши локальные переменные в этом контексте не существуют.
Вот хороший справочник, чтобы узнать о переменных:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var
Простое решение:
function sysWrite(name, data){
fs.appendFile(`${name}.json`, data, function(err){
if(err) throw err;
})
}
forLoop().then(function (resSet){
for(i = 0; i < resSet.length; i++){
(function(i){
setTimeout(function(){
axios.get(`https://api.census.gov/data/2016/acs/acs5?get=NAME,${resSet[i]}&for=state:*&key=${censusAPI}`)
.then(function (response) {
//problem place
let replacedKey = Object.assign({}, response.data);
let jsonData = JSON.stringify(replacedKey).replace(testArray[i][0], testArray[i][1]);
sysWrite(testArray[i][1], jsonData);
})
.catch(function (error) {
console.log(error);
});
}, 100*i)
})(i);
}
})