首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:(中间值)不是函数

TypeError:(中间值)不是函数
EN

Stack Overflow用户
提问于 2022-04-10 15:47:14
回答 2查看 1.3K关注 0票数 0

因此,我目前正在使用Discord.JS V13制造一个不和谐的机器人。

当我运行node index.js命令时,我一直收到这个错误

代码语言:javascript
复制
TypeError: (intermediate value) is not a function
    at module.exports (C:\Users\myUser\OneDrive\Desktop\Green Hosting Discord bot\Handlers\Events.js:10:5)

我不知道它为什么要这么做。守则是:

代码语言:javascript
复制
const { Events } = require("../Validation/EventNames");
const { promisify } = require("util");
const { glob } = require("glob");
const PG = promisify(glob);
const Ascii = require("ascii-table");

module.exports = async (client) => {
    const Table = new Ascii("Events Loaded")

    (await PG(`${process.cwd()}/Events/*/*.js`)).map(async (file)=>{
        const event = require(file);

        if(!Events.includes(event.name) || !event.name) {
            const L = file.split("/");
            await Table.addRow(`${event.name || "MISSING"}`, `⛔ Event name is either invalid or missing: ${L[6] + "/" + L[7]}`)
            return;
        };

        if(event.once){
            client.once(event.name, (...args)=>event.execute(...args, client));
        } else {
            client.on(event.name, (...args)=>event.execute(...args, client));
        };

        await Table.addRow(event.name, "✔ SUCCESSFUL")
    });

    console.log(Table.toString());
};

如果你能帮我,那就太棒了。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2022-04-10 16:00:49

const Table = new Ascii("Events Loaded")后没有分号。只有在没有分号的情况下,如果连在一起的话,自动分号插入将是无效的。但是,在这里,代码是有效的(但在运行时失败):

代码语言:javascript
复制
const Table = new Ascii("Events Loaded")

(await PG(`${process.cwd()}/Events/*/*.js`)).map(/*...*/)

代码语言:javascript
复制
const Table = new Ascii("Events Loaded")(await PG(`${process.cwd()}/Events/*/*.js`)).map(/*...*/)

如您所见,这将是对new Ascii("Events Loaded")返回值的函数调用。但是,这不是一个函数,不能被调用,因此出现了错误。

因此,解决方案是在这里添加缺失的分号:

代码语言:javascript
复制
const Table = new Ascii("Events Loaded");
//                                      ^

或者,如果您想编写没有分号的代码,则需要insert a semicolon at the of lines if they begin with certain characters (包括( ),如下所示:

代码语言:javascript
复制
;(await PG(`${process.cwd()}/Events/*/*.js`)).map(/*...*/)
票数 1
EN

Stack Overflow用户

发布于 2022-04-10 15:54:48

尝试:

代码语言:javascript
复制
const promise = await PG(`${process.cwd()}/Events/*/*.js`)
promise.map(async (file)=>{
   // code...    
});

或者,也许是半色的:

代码语言:javascript
复制
const Table = new Ascii("Events Loaded");
//--------------------------------------^
(await PG(`${process.cwd()}/Events/*/*.js`)).map(async (file)=>{
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71818176

复制
相关文章

相似问题

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