gpt4 book ai didi

javascript - 分解 JS 函数

转载 作者:行者123 更新时间:2023-12-02 22:22:31 28 4
gpt4 key购买 nike

我正在尝试简化我的代码并将其分解为多个文件。例如,我设法做到了:

socket.once("disconnect", disconnectSocket);

然后有一个名为 disconnectSocket 的单独函数,它可以访问 socket 对象,如下所示:

const disconnectSocket = socket => {
....
};

我正在尝试用这种模式做类似的事情:

socket.on(EVENT_NAME, params => {
...
});

我可以在哪里做:

socket.on(EVENT_NAME, myFunc);

const myFunc = (socket, params) => {
...
}

但这失败了,并显示params is undefined。我做错了什么?

最佳答案

您可以实现此目的,但您的函数签名不正确。该处理程序仅接受一个参数。请注意 built-in events 中的一些像 reconnect_failed 不要传递任何参数。

将您的签名更改为:

socket.on(EVENT_NAME, myFunc);

const myFunc = (message) => {
...
}

如果您想访问套接字,请执行以下操作:

socket.on(EVENT_NAME, (message) => myFunc(socket, message));

const myFunc = (socket, message) => {
...
}

我使用这个确切的模式:

socket.on(constants.events.game.deployUnit, (message) => {
deployUnit(socket, message);
});

socket.on(constants.events.game.skipOpponent, (message) => {
skipOpponent(socket, message);
});

socket.on(constants.events.game.logDefenderKill, (message) => {
logDefenderKill(socket, message);
});

关于javascript - 分解 JS 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59182248/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com