我有一個函式回傳 Discord.JS 中的公會前綴:
getprefix.js:
const GuildSchema = require("../Database/Models/GuildConfigs");
const { DEFAULT } = require("./config");
const getprefix = async (id) => {
const guildConfigs = await GuildSchema.findOne({
GuildID: id,
});
let PREFIX = DEFAULT;
if (guildConfigs && guildConfigs?.Prefix) {
PREFIX = guildConfigs?.Prefix;
}
};
module.exports = { getprefix };
我使用這個呼叫另一個檔案中的函式:
let prefix = getprefix(message.guild.id);
prefix.then(() => {
console.log(prefix);
});
問題是它在控制臺中回傳這個:
Promise { '!' }
是否可以只回傳引號內的實際前綴而不帶 Promise?
uj5u.com熱心網友回復:
是的,但您必須從異步函式回傳值。
getprefix.js:
const GuildSchema = require("../Database/Models/GuildConfigs");
const { DEFAULT } = require("./config");
const getprefix = async (id) => {
const guildConfigs = await GuildSchema.findOne({
GuildID: id,
});
let PREFIX = DEFAULT;
if (guildConfigs && guildConfigs?.Prefix) {
PREFIX = guildConfigs?.Prefix;
}
return PREFIX;
};
module.exports = { getprefix };
并更改電話:
let prefix = getprefix(message.guild.id);
prefix.then((value) => {
console.log(value);
});
uj5u.com熱心網友回復:
首先,您必須從名為 的異步函式回傳一個值getprefix。其次,您必須console.log是getprefix函式回傳的承諾的結果,而不是承諾本身:
const getprefix = async (id) => {
const guildConfigs = await GuildSchema.findOne({GuildID: id});
if (!guildConfigs || !guildConfigs.Prefix) {
return DEFAULT;
}
return guildConfigs.Prefix;
};
getprefix(message.guild.id).then(prefix => console.log(prefix));
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/394545.html
標籤:javascript 不和谐.js
上一篇:這個在HAVING子句中使用MIN()的SQL查詢究竟做了什么?
下一篇:如何在某些頁面中隱藏頁腳組件
