У меня есть файл JSON, который добавляется непрерывно до его завершения (он содержит координаты из симуляции, в то время как эта симуляция работает, координаты каждого временные рамки добавляются в файл JSON).Анализ синтаксического разбора JSON и ошибок «недопустимых» (с Oboe.js)
На моей веб-странице эти координаты должны быть показаны, как только начнется симуляция. Для этого я использую Oboe.js для отображения координат, как только они присутствуют в файле формата JSON:
function smashIt(path){
oboe(path)
.node('frames.*', function(frame){
animationFrames.push(frame);
})
.fail(function(errorReport){
console.log(errorReport);
smashIt(path);
})
.done(function(finalObj){
finalObject = finalObj;
console.log(finalObj);
});
}
Проблема с этим состоит в том, что, так как это в основном поток JSON, пока файл не будет полностью законченный, JSON может быть недействительным, когда функция Гоу достигла конца уже доступного содержимого: для его JSON может отсутствовать }
или запятая.
Если это произойдет, ошибка будет вызываться гобой, которую я поймаю в .fail
-эвенте. После регистрации ошибки я снова запустил всю функцию «Гобой», и, в конце концов, после того, как примерно 50 .fail()
закончится, и в конечном итоге у меня будет весь объект JSON.
Но это плохой подход. Текущая функциональность работает, чтобы отображать координаты, когда они уже транслируются, но при каждом повторении функции smashIt()
.node()
-event будет предоставлять все узлы JSON из файла JSON до этой точки (всегда будет около 50-100 более по сравнению с предыдущим smashIt()
исполнения.
Что я ищу способ недействительных ошибок JSON и пусть гобой .node()
-метода ждать (или лучшую идею?), пока JSON действует вместо используя .fail
-Approach, таким образом, используя только одно исполнение smashIt()
, в котором неправильно обрабатываются неправильные ошибки JSON.
Я надеялся, что Oboe.js справится с этим им но это не так.
Кажется, что гобою нужен файл, который он получает, чтобы быть полным и действительным файлом JSON. То, что делает Гобой, это то, что он может начать обрабатывать JSON, даже если он просачивается, потому что, например, вы находитесь на медленном соединении. Возможно, есть способ настроить поток прямо из гобоя в ваш simlautor, возможно, с прокси между ними. Если можно подождать симуляции, попробуйте, это кажется намного проще. – Halcyon
На самом деле гораздо проще ждать симуляции, но это слишком долго. Причина, по которой я пытаюсь использовать потоковый подход, - это увидеть «прогресс», потому что некоторые симуляции могут занять несколько минут до его завершения. – Fluppe