Для l oop в then () не повторяется - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь собрать html и вставить в него результаты из БД. submitData возвращает обещание, и если проверка работает, когда консоль вошла, но когда она достигает l oop, она просто останавливается, ошибок нет. Я не могу понять.

submitData(submit, ('GET'), (api + '/' + id))
            .then((pc) => {
                if (pc.length !== 0) {
                    //console log here gives results
                    for (let j = 0; j < pc.length; j++) {
                        //console log here no results, no errors
                        cBuilder(
                            sPost, 
                            (pc[j].user),
                            (pc[j].username),
                            (pc[j].time),
                            (pc[j].text)
                        )
                    }
                }
            });

Журнал консоли после if statment:

Object { pc:(4) [...]}

cBuilder строит html и помещает значения из списка аргументов в правильное место , Для l oop не вызывается по какой-то причине. Журнал консоли сразу после того, как результат выдачи статистики, когда первая строка в журнале консоли указывает, не выполняет итерацию, поэтому cBuilder даже не вызывается.

cBuilder(sPost, ...){
let scd = document.createElement('div');
    scd.setAttribute('class', 'col-md-12');
    sPost.appendChild(scd);
.
.
.

1 Ответ

1 голос
/ 20 апреля 2020

Ваша запись в журнале показывает это: Object { pc:(4) [...]}, что означает, что ваш код возвращает объект обратно со свойством, в котором находится массив. В вашем коде вы пытаетесь l oop над объектом, а не массивом.

...
.then((result) => {
  var pc = result.pc
  if (pc && pc.length !== 0) { }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...