Я использую цикл for, содержащий оператор if внутри Promise.then () (это вызов API).Переменная, инициализированная до цикла for, доступна в цикле for, но не после.
Я console.logged переменная перед циклом for, как раз внутри цикла for, внутри ifоператор, после оператора if и после цикла for.Этот последний файл console.log даже не появляется неопределенным.Похоже, что он вообще не регистрируется.
Я пробовал простые версии той же базовой структуры в консоли Chrome, и она работает, но разница в том, что в консоли Chrome я не вPromise.then ().Поэтому я думаю, что я чего-то не понимаю.
$(document).ready(function() {
const url = 'https://www.ndbc.noaa.gov/data/realtime2/46029.spec';
const newBouyData = new BouyData();
let currentBouyData = newBouyData.getBouyData(url);
currentBouyData.then((text) => {
const today = new Date();
let lineDate;
let line;
let lineArray;
const lines = text.split('\n');
let currentData;
for (let i = 2; i <= lines.length; i++) {
line = lines[i];
lineArray = line.split(' ');
lineDate = new Date(lineArray[0], lineArray[1] - 1, lineArray[2]).toLocaleDateString();
if ( today.toLocaleDateString() === lineDate && today.getHours() === parseInt(lineArray[3]) ) {
currentData = lineArray;
}
}
console.log('currentData after: ', currentData);
. . .
Я ожидаю, что currentData будет массивом строк.Я ничего не получаю.Даже не console.log.
Чего мне не хватает?
Спасибо за ваши мысли.