#discord.js
#discord.js
Вопрос:
У меня есть некоторый код для получения вложений сообщений в определенных каналах и регистрации URL-адресов. Сначала это работало нормально, но теперь я получаю ошибку типа «не удается прочитать свойство ‘forEach’ неопределенного.
messageAttachments.push(message.attachments);
messageAttachments.forEach((element) => element.forEach(attachment_array =>console.log(attachment_array.url)));
Я действительно понятия не имею, почему это происходит, между тем фактом, что этого не произошло ранее, и что проверка, чтобы убедиться, что элемент определен, не работает.
Комментарии:
1. Похоже
attachments
, что свойствоmessage
объекта, который вы помещаете в массив, не определено…2. @derpirscher Если я делаю что-то подобное
if (typeof message.attachments !== undefined)
, я все равно получаю ту же ошибку.3. Вы используете
forEach
два раза. Один раз сmessageAttachments.forEach
помощью и один раз сelement.forEach
помощью .messageAttachments
не может быть неопределенным, потомуpush
что произойдет сбой, и ваш код не дойдет до следующей строки. Итак, основываясь на коде, который вы нам показываете, по крайней мере одинelement
изmessageAttachments
них должен быть неопределенным. И единственныйelement
inmessageAttachments
естьmessage.attachments
. Таким образом, либо это не определено, либо ошибка происходит где-то в другом месте, либо вы добавляете неопределенные элементы в другом месте…4. И ваша проверка типа неверна.
typeof
всегда возвращает строку. Поэтому вы должны проверитьif (typeof message.attachments !== 'undefined')