await 仅对异步函数有效城市字典 api discord js
Posted
技术标签:
【中文标题】await 仅对异步函数有效城市字典 api discord js【英文标题】:await only valid with async function urban dictionary api discord js 【发布时间】:2021-05-01 09:30:47 【问题描述】:知道如何解决这个问题吗?我尝试将异步功能放入其中,但无法使其正常工作。我不太确定如何或在何处添加异步功能,以及如何让两者一起工作。非常感谢任何帮助,这是针对不和谐的 javascript 机器人的。
client.on('message', message =>
if (message.content.startsWith(`$PREFIXurban`))
if (!args.length)
return message.channel.send('You need to supply a search term!');
const query = querystring.stringify( term: args.join(' ') );
const list = await fetch(`https://api.urbandictionary.com/v0/define?$query`).then(response => response.json());
if (!list.length)
return message.channel.send(`No results found for **$args.join(' ')**.`);
const [answer] = list;
const embed = new Discord.MessageEmbed()
.setColor('#EFFF00')
.setTitle(answer.word)
.setURL(answer.permalink)
.addFields(
name: 'Definition', value: trim(answer.definition, 1024) ,
name: 'Example', value: trim(answer.example, 1024) ,
name: 'Rating', value: `$answer.thumbs_up thumbs up. $answer.thumbs_down thumbs down.` ,
);
message.channel.send(embed);
);
【问题讨论】:
添加了一个答案,让我知道它是否有效 ***.com/… 【参考方案1】:为了运行您的await
命令,您必须将async
放在代码的顶部。有关await
和async
工作原理的更多信息,请查看link provided by VLAZ。
//put the async right before the second message, that's it
client.on('message', async message =>
if (message.content.startsWith(`$PREFIXurban`))
if (!args.length)
return message.channel.send('You need to supply a search term!');
const query = querystring.stringify( term: args.join(' ') );
const list = await fetch(`https://api.urbandictionary.com/v0/define?$query`).then(response => response.json());
if (!list.length)
return message.channel.send(`No results found for **$args.join(' ')**.`);
const [answer] = list;
const embed = new Discord.MessageEmbed()
.setColor('#EFFF00')
.setTitle(answer.word)
.setURL(answer.permalink)
.addFields(
name: 'Definition', value: trim(answer.definition, 1024) ,
name: 'Example', value: trim(answer.example, 1024) ,
name: 'Rating', value: `$answer.thumbs_up thumbs up. $answer.thumbs_down thumbs down.` ,
);
message.channel.send(embed);
);
【讨论】:
以上是关于await 仅对异步函数有效城市字典 api discord js的主要内容,如果未能解决你的问题,请参考以下文章
await 仅在异步函数中有效 - 使用 mongoosejs exec() 时
无法从异步函数获取返回值,等待未按预期工作(Vue API 服务)