繁体   English   中英

将异步 function 导入另一个文件时遇到问题

[英]Having trouble importing an async function into another file

我一直在研究一个 Guilded Bot,它在 x 数量的 MS 后自动运行 function。 我的目标是自动化这个 function 以检查网站是否有新帖子。 我遇到的问题是尝试导入 function 并在另一个文件中调用它时。 我发现的推荐方法似乎都不起作用。 下面是我的代码。

//relay.ts under ./automations/
async function patchNotes(message:Message) {
}
export { patchNotes }
//The main file in src its called index.ts

import path from "path";
import { BotClient, Client, Message } from "@guildedjs/gil";
const { token, token2 } = require('./config.json');

import { patchNotes } from './automations/relay';

const client = new BotClient({
  token: token,
  prefix: "/",
});

client.once('ready', () => console.log('Ready! Shut down using "ctrl+c"'));

client.login();

process.on("unhandledRejection", console.log)
//setTimeout(() => console.log(client.commands), 600);

// Automations

patchNotes
setInterval(() => patchNotes, 6000);

目前,此方法不会返回类型和其他内容的控制台错误。 但它也根本不运行代码? 我也尝试过其他方法,但到目前为止都没有奏效。 以下是我正在使用的软件包。

  • ts 节点“10.8.1”
  • typescript "4.7.4" 它正在运行 Node.js 并且所有文件都写在 TS 中。 如果您需要更多详细信息,我很乐意提供。 真的希望能解决这个问题,而不是仅仅将 function 放在我的主文件中。

所以我实际上刚刚找到了答案。 所以看来我可以将 setInterval 与异步任务一起使用。 下面是我用来实现这一点的代码。

setInterval(async () => {
  await function();
}, delay)

至于我的其他问题。 我发现我可以只写client.messages.send而不是message. 在它面前。 我没有遵循最近评论的建议的原因是因为这个 function 不应该返回任何值。 我添加message: Message是因为我的代码中有一行使用“消息”。 就是上面提到的那个。 应该将其添加到此线程中。 不过感谢您的回复。 解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM