【问题标题】:Async function | Await not waiting for promise {Partially D.js}异步函数 |等待不等待承诺 {Partially D.js}
【发布时间】:2020-11-19 19:55:41
【问题描述】:
async function find(a) {await message.guild.members.resolve(a).displayName}

let Del = find("350994324072300547")
message.channel.send(Del)

我希望 Del “成为” message.guild.members.resolve("350994324072300547").displayNamefind 等待承诺。我做错了什么?

我得到的结果是[object Promise]

【问题讨论】:

  • 你必须在调用“find”函数的前面加上“await”:let Del = await find
  • 已经试过了,await is only valid in async function 说 (Talk bout let Del)

标签: javascript node.js function async-await discord.js


【解决方案1】:

在 find 调用中包含 await。并将整个代码包装在 IIFE 异步函数中。

(async function() {
    async function find(a) {
       return await message.guild.members.resolve(a).displayName
    }

    let Del = await find("350994324072300547");

    message.channel.send(Del);
})();

【讨论】:

  • 已经试过了,await is only valid in async function 说 (Talk bout let Del)
  • 编辑了我对该问题的答案。您必须将代码包装到一个立即调用/调用的函数中。
  • 它不应该抛出同样的错误。还有什么不对劲的。我们将代码包装在一个函数中,并在函数前面加上 async 关键字。这应该会删除错误await is only valid in async function。你确定你面临同样的错误吗?
  • 我想稍后将 Del 作为不同消息的一部分发送,我还有多个具有不同值的变量作为 Del
  • 谢谢!我刚刚意识到可以添加我的其他变量和其他消息!
猜你喜欢
  • 2018-02-03
  • 2018-03-05
  • 1970-01-01
  • 2017-06-15
  • 1970-01-01
  • 2021-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多