当前位置: 首页 > 知识库问答 >
问题:

如何修复解析错误:保留关键字等待

贲绪
2023-03-14

上面是我的代码,但是,我得到一个错误:-

‘Parsing Error: The keyword ‘await’ is reserved’

我的错误发生的行在下面。如果可以请帮帮我。

我得到了这段代码第一行的错误

如果你能帮忙,我将不胜感激,因为我正在为这个问题苦苦挣扎。再次感谢你!

    const { body: buffer } = await snekfetch.get(member.user.displayAvatarURL);
    const avatar = await Canvas.loadImage(buffer);
    ctx.drawImage(avatar, 25, 25, 200, 200);

    if (!channel) return;

    const canvas = Canvas.createCanvas(700, 250);
    const ctx = canvas.getContext('2d');

    const { body:buf } = await snekfetch.get('https://cdn.glitch.com/6ec6dccb-f1a9-4c03-b4f1-d6c639e188c9%2Fwallpaper.jpg?1532779841254');
    const background = await Canvas.loadImage(buffer);
    ctx.drawImage(background, 0, 0, canvas.width, canvas.height);

    ctx.strokeStyle = '#74037b';
    ctx.strokeRect(0, 0, canvas.width, canvas.height);

    // Slightly smaller text placed above the member's display name
    ctx.font = '28px sans-serif';
    ctx.fillStyle = '#ffffff';
    ctx.fillText('Welcome to the server,', canvas.width / 2.5, canvas.height / 3.5);

    // Add an exclamation point here and below
    ctx.font = applyText(canvas, `${member.displayName}!`);
    ctx.fillStyle = '#ffffff';
    ctx.fillText(`${member.displayName}!`, canvas.width / 2.5, canvas.height / 1.8);

    ctx.beginPath();
    ctx.arc(125, 125, 100, 0, Math.PI * 2, true);
    ctx.closePath();
    ctx.clip();

    const { body: buffer } = await snekfetch.get(member.user.displayAvatarURL);
    const avatar = await Canvas.loadImage(buffer);
    ctx.drawImage(avatar, 25, 25, 200, 200);

    const attachment = new Discord.Attachment(canvas.toBuffer(), 'welcome-image.png');

    channel.send(`Welcome to the server, ${member}!`, attachment);
});
    ctx.drawImage(background, 0, 0, canvas.width, canvas.height);

    ctx.strokeStyle = '#74037b';
    ctx.strokeRect(0, 0, canvas.width, canvas.height);

    // Slightly smaller text placed above the member's display name
    ctx.font = '28px sans-serif';
    ctx.fillStyle = '#ffffff';
    ctx.fillText('Welcome to the server,', canvas.width / 2.5, canvas.height / 3.5);

    // Add an exclamation point here and below
    ctx.font = applyText(canvas, `${member.displayName}!`);
    ctx.fillStyle = '#ffffff';
    ctx.fillText(`${member.displayName}!`, canvas.width / 2.5, canvas.height / 1.8);

    ctx.beginPath();
    ctx.arc(125, 125, 100, 0, Math.PI * 2, true);
    ctx.closePath();
    ctx.clip();

    const { body: buffer } = await snekfetch.get(member.user.displayAvatarURL);
    const avatar = await Canvas.loadImage(buffer);
    ctx.drawImage(avatar, 25, 25, 200, 200);

    const attachment = new Discord.Attachment(canvas.toBuffer(), 'welcome-image.png');

    channel.send(`Welcome to the server, ${member}!`, attachment);
});

共有1个答案

焦博实
2023-03-14

wait仅在异步函数中有效。我无法从您发布的代码中看到函数定义,但我的第一个猜测是它是一个普通的旧函数。

例如,如果您的代码看起来像:

function main() {
    // ...code
    const { body: buffer } = await snekfetch.get(member.user.displayAvatarURL);
    // ...code
}

然后你会有问题,你需要async关键字之前的函数关键字

如果要尝试使用箭头函数,也会有类似的要求:

const main = async () => {
  // code...
  const {body: buffer} = await snekfetch.get(member.user.displayAvatarURL);
  // more code...
}

还要注意的是,异步关键字仅适用于它直接附加到的函数,而不是递归地向下应用到您在该函数中定义的每个函数。例如,你不能做:

const main = async () => {
  // code...
  const getAvatar = () => {
    const {body: buffer} = await snekfetch.get(member.user.displayAvatarURL);
  };
  // more code...
}

这将是一个语法错误,因为await在未声明为async的函数中使用,您需要执行以下操作:

const main = () => {
  // code...
  const getAvatar = async () => {
    const {body: buffer} = await snekfetch.get(member.user.displayAvatarURL);
  };
  // more code...
}
 类似资料:
  • 问题内容: 我从ESLint收到此错误: 从此代码: 我试着删除并重新安装所有NPM包,但无济于事。 问题答案: ESLint默认为ES5语法检查。您将要覆盖到最新的受支持的JavaScript版本。 尝试将文件添加到您的项目。在里面: 希望这会有所帮助。 编辑:我也发现了这个例子可能会有所帮助。

  • 我从ESLint获得此错误: 根据该代码: 我已经尝试过删除并重新安装所有npm软件包(如本文所建议的),但没有效果。

  • 保留字是 Python 语言中一些已经被赋予特定意义的单词,这就要求开发者在开发程序时,不能用这些保留字作为标识符给变量、函数、类、模板以及其他对象命名。 Python 包含的保留字可以执行如下命令进行查看: >>> import keyword >>> keyword.kwlist ['False', 'None', 'True', 'and', 'as', 'assert', 'break',

  • 我尝试安装< code>Lighttpd,但我得到了以下错误: 正在读取包列表…错误!E: 无法分析包文件/var/lib/dpkg/status(1)E:无法分析或打开包列表或状态文件。 因此,我在互联网上搜索并尝试删除和重新加载包裹列表: @ rasp:~ $ sudo RM/var/lib/apt/lists/*-VF removed '/var/lib/apt/lists/archive

  • ECMA-262 描述了一组具有特定用途的关键字,这些关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等。按照规则,关键字也是语言保留的,不能用作标识符。以下就是 ECMAScript的全部关键字(带*号上标的是第 5 版新增的关键字): ECMA-262 还描述了另外一组不能用作标识符的保留字。尽管保留字在这门语言中还没有任何特定的用途,但它们有可能在将来被用作关键字。以下是 ECMA

  • 问题内容: 我有一些正在使用Gson反序列化的JSON。 我的问题是这是Java关键字,那么我该如何在类中创建与JSON中的字段相关的字段? 问题答案: 您可以使用gson的字段命名支持为字段使用其他名称。