Я делаю это очень простое приложение, чтобы помочь мне изучить nodejs, и у меня есть специальный обработчик, который генерирует HTML-код, основанный на первых 10 сообщениях в моей базе данных. У меня есть проблема с циклами через сообщения и вызовом функции, генерирующей HTML, и добавляет результат в мою строку html.
function CreateMessageboard(BoardMessages){
var htmlMessageboardString = "";
[... Console debug code ...]
for(var i = 0; i < BoardMessages.length;i++){
(function(){
var j = i;
console.log("Loading message %d".green, j);
htmlMessageboardString += MessageToHTMLString(BoardMessages[j]);
})();
}
}
Я думаю, что моя проблема связана с Javascript-способом обработки циклов, связанных с закрытием от того, что я читаю, и это то, что я пытался использовать выше, или метод async nodejs обрабатывает мою функцию. Сейчас 10 результатов хорошо возвращены из db, но последнее сообщение обрабатывается в каждом цикле.
Я также попытался вместо var j = я принять значение я в качестве параметра функции и передать его в закрытие, и он все равно вернул те же результаты.
У меня такое чувство, что я не хватает критических знаний для решения своей проблемы, могу ли я рассказать об этом?
Изменить: я могу предоставить любую другую информацию о коде, я бы опубликовал весь репортаж git, но люди, вероятно, не хотят проплывать через весь проект, чтобы помочь мне отладить эту проблему, поэтому я опубликовал вся функция в комментариях, чтобы предоставить больше контекста.