我尝试写一个具有约束力座。io.
我有麻烦的功能(next()
在我的代码在底部),要么没有论点或一个错误对象(Js.Exn.raiseError("ERROR!")
).
我能不能找到一种方法来定义的一个函数的签名,可以采取两种类型的论点作为第一个价值。
我甚至不确定,如果有什么我要求的是能够在重写,任何有助于解决这一问题的适当重写方式,将不胜感激。
我目前的执行情况是这样的:
type server
type socket
type next = (. unit) => unit
@new @module("socket.io") external socketIO: unit => server = "Server"
@send external use: (server, (socket, next) => unit) => unit = "use"
@send external listen: (server, int) => unit = "listen"
@send external on: (server, @string [ #connection(socket => unit) ] ) => unit = "on"
let io = socketIO()
io->use((socket, next) => {
Js.log("FIRST")
next(.)
})
io->use((socket, next) => {
Js.log("SECOND")
next(.)
})
io->on(#connection(socket =>
Js.log("CONNECT")
))
io->listen(3000)