Am încercat să scrie un caracter obligatoriu pentru soclu.io.
Am probleme cu o funcție (next()
în exemplul de cod de mai jos), care fie nevoie de nici un argument sau o eroare obiect (Js.Exn.raiseError("ERROR!")
).
Eu nu pot găsi o modalitate de a defini o funcție, semnătură care pot avea ambele tipuri de argument ca prima valoare.
Nu sunt chiar sigur, dacă ceea ce îți cer este posibilă în rescrieri, orice ajutor pentru a rezolva această problemă în buna rescrieri fel, ar fi de apreciat.
Meu actual de punere în aplicare arată astfel:
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)