Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Прошу подсказать почему Cannot access "users" before initialization использую Nodejs (https://javascript.ru/forum/node-js-io-js/83944-proshu-podskazat-pochemu-cannot-access-users-before-initialization-ispolzuyu-nodejs.html)

Nexus 25.04.2022 15:36

Если вам таки нужен пользователь, то замените строки 15-19 этим кодом:
const users = await vk.api.users.get({
    user_ids: message.userId
})
console.log(`Беседа #${message.peerId}, id сообщения ${message.conversationMessageId}`)
const user = users.find(x => x.id === (message.userId))


Или даже этим:
const [user] = await vk.api.users.get({
    user_ids: message.userId
})
console.log(`Беседа #${message.peerId}, id сообщения ${message.conversationMessageId}`)

_RedGamer_ 25.04.2022 15:38

Я решил проблему:) users.json у меня не имеется,поэтому я подумал что эта строка не нужна совсем..и vk.api.mesages.sendMessageEventAnswer закинул перед if (message.eventPayload.text ....)

Nexus 25.04.2022 15:47

_RedGamer_, ваш код в 12-м сообщении после 15-й строки не имеет смысла.

_RedGamer_ 25.04.2022 15:59

Nexus,
Вот вы мне мысль накинули, что "нужно ли вообще запрашивать информацию"..я задумался удалил эти строки связанные с users и console.log(users) тоже удалил ,запустилось без ошибок но всплывающего окна я так и не увидел,решил перенести строку

Вот эту
vk.api.messages.sendMessageEventAnswer({
        event_id: message.eventId,
        peer_id: message.peerId,
        conversation_message_ids: message.conversationMessageId,
        user_id: message.userId,
        event_data: JSON.stringify({
            "type": "show_snackbar",
            "text": `${user_info.first_name}, Ты успешно проверил(а) Callback кнопку`
        })
    })
    return


Поставить перед этой
if (message.eventPayload.text === 'Ты успешно проверил(а) Callback кнопку') return;


Получилось это
vk.updates.on('message_event', async (message) => {
                const [user_info] = await vk.api.users.get({
                    user_ids: message.userId
                })
                console.log(`Беседа #${message.peerId}, id сообщения ${message.conversationMessageId}`)
                vk.api.messages.sendMessageEventAnswer({
                    event_id: message.eventId,
                    peer_id: message.peerId,
                    conversation_message_ids: message.conversationMessageId,
                    user_id: message.userId,
                    event_data: JSON.stringify({
                        "type": "show_snackbar",
                        "text": `${user_info.first_name}, Ты успешно проверил(а) Callback кнопку`
                    })
                })
                if (message.eventPayload.text === 'Ты успешно проверил(а) Callback кнопку') return;
                return

_RedGamer_ 25.04.2022 16:05

Nexus,
Спасибо вам большое! Накинули идею с нужным ли мне запросом users я убрал и одну строку выше другой поставил и всё заработало, спасибо!!!

_RedGamer_ 25.04.2022 16:08

Nexus,
Как закрыть тему? Или поставить статус Решено ?

рони 25.04.2022 16:08

Цитата:

Сообщение от _RedGamer_
17
                return

???

рони 25.04.2022 16:10

Цитата:

Сообщение от _RedGamer_
Как закрыть тему?

никак, здесь темы не закрываются. в любое время можно добавить свой комментарий или решение.

_RedGamer_ 25.04.2022 16:26

Цитата:

Сообщение от рони (Сообщение 544972)
???

Уже решил проблему,да не вижу смысла этого if(!users) и после него console.log..херню сделал) я начинающий js scripter начинаю по node js


Часовой пояс GMT +3, время: 05:48.