首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TypeError: targetchannel.send不是一个函数

TypeError: targetchannel.send不是一个函数
EN

Stack Overflow用户
提问于 2021-12-12 11:29:54
回答 3查看 85关注 0票数 -1

节点版本: v16.13.1

Discord.js版本: 13.3.1

代码语言:javascript
运行
复制
TypeError: targetchannel.send is not a function

如何修复此错误?

代码:

代码语言:javascript
运行
复制
fs.readdir('channels', function (err, files) {
if (err) {
    return console.log('Unable to scan directory: ' + err);
}
files.forEach(function (file) {
    targetchannel = client.channels.fetch(fs.readFileSync('channels/' + file,{encoding:'utf8'}))
    console.log(targetchannel)
    targetchannel.then((value) => {
            targetchannel.send("asdra")
});

});
});

日志的目标通道=允诺{<待定>}

误差图像https://i.stack.imgur.com/ixfK5.png

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-12-13 06:48:51

修复

我当时很傻。机器人在登录之前调用了.send。

代码语言:javascript
运行
复制
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`);
if (!fs.existsSync('channels/')) {
     fs.mkdirSync('channels');
}
fs.readdir('channels', async function (err, files) {
if (err) {
    return console.log('Unable to scan directory: ' + err);
}
files.forEach(async function (file) {
    targetchannel = await client.channels.fetch(fs.readFileSync('channels/' + file,{encoding:'utf8'}))
    console.log(targetchannel)
    targetchannel.send("asdra")

});
});});
票数 0
EN

Stack Overflow用户

发布于 2021-12-12 12:12:28

"TypeError:.send不是一个函数“意味着通道没有正确定义或者没有被找到。

在您的情况下,您需要等待,因为.fetch是一个异步方法。

代码语言:javascript
运行
复制
targetchannel = await client.channels.fetch()

编辑:作者修复了它,并有另一个问题。

票数 0
EN

Stack Overflow用户

发布于 2021-12-12 16:30:30

targetChannel仍然是悬而未决的承诺。使用value.send()代替,因为value是已解决的承诺

代码语言:javascript
运行
复制
targetchannel.then((value) => {
    value.send("asdra")
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70323139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档