获取 throw new ERR_INVALID_ARG_TYPE(name, 'Function', value);
Getting throw new ERR_INVALID_ARG_TYPE(name, 'Function', value);
我正在使用 socket.io 并收到此错误:
throw new ERR_INVALID_ARG_TYPE(name, 'Function', value);
^
TypeError [ERR_INVALID_ARG_TYPE]: The "listener" argument must be of type function. Received undefined
我正在为套接字上的回调制作一个控制器,它是这样的:
const { onDisconnect } = require('./app/controllers/socket');
/*
...
*/
io.on('connection', (socket) => {
socket.on('disconnect', onDisconnect(socket));
});
我在“onDisconect”函数上得到了正确的错误。但是,如果我这样声明函数,它会起作用:
io.on('connection', (socket) => {
socket.on('disconnect', () => {
console.log(`${socket.id} disconnected`);
});
});
我在另一个脚本上有“onDisconect”函数,其中包含:
const onDisconnect = (socket) => {
console.log(`${socket.id} disconnected`);
}
module.exports = { onDisconnect };
那是因为您正在调用 onDisconnect()
,而 returns undefined
不是函数。您有两个选择:
- 只需将
socket.on("disconnect", onDisconnect(socket))
更改为socket.on("disconnect", onDisconnect)
- Return
onDisconnect
中的函数:
function onDisconnect(socket) {
return () => {
console.log(`${socket.id} disconnected`);
};
}
我正在使用 socket.io 并收到此错误:
throw new ERR_INVALID_ARG_TYPE(name, 'Function', value);
^
TypeError [ERR_INVALID_ARG_TYPE]: The "listener" argument must be of type function. Received undefined
我正在为套接字上的回调制作一个控制器,它是这样的:
const { onDisconnect } = require('./app/controllers/socket');
/*
...
*/
io.on('connection', (socket) => {
socket.on('disconnect', onDisconnect(socket));
});
我在“onDisconect”函数上得到了正确的错误。但是,如果我这样声明函数,它会起作用:
io.on('connection', (socket) => {
socket.on('disconnect', () => {
console.log(`${socket.id} disconnected`);
});
});
我在另一个脚本上有“onDisconect”函数,其中包含:
const onDisconnect = (socket) => {
console.log(`${socket.id} disconnected`);
}
module.exports = { onDisconnect };
那是因为您正在调用 onDisconnect()
,而 returns undefined
不是函数。您有两个选择:
- 只需将
socket.on("disconnect", onDisconnect(socket))
更改为socket.on("disconnect", onDisconnect)
- Return
onDisconnect
中的函数:
function onDisconnect(socket) {
return () => {
console.log(`${socket.id} disconnected`);
};
}