首页 > 解决方案 > 我的函数返回“[object Promise]”作为结果(超时后)。但是使用该功能时,控制台已经在记录结果(steamID)JS

问题描述

我在没有超时的情况下尝试了它,没有将 steamID 转换为字符串(两者都是“无法发送空消息”)。但是我已经有30分钟没有进一步了。

(vanityURL = 输入)

我的功能(API 完全正常工作):

const fetch = require("node-fetch");
const botconfig = require("../botconfig.json")

async function getSteamID(vanityURL) {

    const response = await fetch(`https://api.steampowered.com/ISteamUser/ResolveVanityURL/v1/?key=${botconfig.steamapikey}&vanityurl=${vanityURL}`);
    const data = await response.json();

    const listDataRaw = JSON.stringify(data);
    const listData = listDataRaw.toString();

    var steamID = listData.replace(/{"response":{"steamid":"|","success":1}}/g, "") // Filter
    console.log(steamID)

    return steamID;
}

module.exports = { getSteamID }

我的测试命令:

const getSteamInfo = require('../functions/getSteamInfo');

module.exports.run = async (bot, message, args) => {
    var vanityURL = args.join(' ')


    const rawSteamID = getSteamInfo.getSteamID(vanityURL);

    await new Promise(r => setTimeout(r, 1000));
    let steamID = rawSteamID.toString();
    message.channel.send(steamID)



};

module.exports.command = {
    name: `test`
}

感谢帮助!

标签: javascriptfunctiondiscorddiscord.js

解决方案


只需输入 "await" const rawSteamID = await getSteamInfo.getSteamID(vanityURL);

并看到它正在工作


推荐阅读