Синтаксическая ошибка: ожидание допустимо только в асинхронной функции, но асинхронность уже включена

#node.js #discord.js

Вопрос:

Я не знаю, почему у меня возникает эта проблема, у меня уже включена асинхронность

вот код

 const fetch = require("node-fetch")

module.exports = {
  name: "find",
  aliases: ["f"],
  run: async (message) => {
    message.attachments.forEach((attachment) => {
      const url = attachment.url;
      console.log(url);

      const res1 = await fetch(
        `https://saucenao.com/search.php?db=999amp;output_type=2amp;testmode=1amp;numres=16amp;url=${url}`
      );
      const data1 = await res1.json();
      console.log(data1);
    });
  },
};
 

Комментарии:

1. Вы находитесь во вложенной области, которая также должна быть асинхронной. .forEach(async attatchment =>

2. Обратный вызов, который вы даете .forEach , не является async

Ответ №1:

Попробуй это

 module.exports = {
  name: "find",
  aliases: ["f"],
  run: async (message) => {
    message.attachments.forEach(async (attachment) => {
      const url = attachment.url;
      console.log(url);

      const res1 = await fetch(
        `https://saucenao.com/search.php?db=999amp;output_type=2amp;testmode=1amp;numres=16amp;url=${url}`
      );
      const data1 = await res1.json();
      console.log(data1);
    });
  },
};
 

асинхронность должна быть записана в функции, имеющей метод await.
В вашем коде ожидание записывается в функции forEach, а не во время выполнения.

Комментарии:

1. Вы должны указать, почему это сработало и что вы изменили

2. спасибо , проблема с ожиданием устранена, но появилась еще одна проблема, и я понятия не имею об этом . это ошибка типа: Не удается прочитать свойство «forEach» неопределенного

3. проверьте, получаете ли вы message.attachments в виде массива или не используете отладку. И если проблема асинхронности решена, пожалуйста, примите решение и не забудьте озвучить ответ.спасибо.