¿Alguien puede explicar qué instrucción se ejecuta primero? http.createServer() o server.listen y cuándo se ejecutará la función de devolución de llamada dentro de createserver?
const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });Si observa la documentación de NodeJS para el módulo HTTP aquí: https://nodejs.org/api/http.html#httpcreateserveroptions-requestlistener
Verá lo que devuelve la llamada http.createServer, de los documentos:
Returns a new instance of http.Server.Por lo tanto, la llamada a createServer debe completarse antes de que pueda devolver un objeto de servidor. Que se está utilizando en su llamada server.listen que se realiza unas pocas líneas a continuación. Asíncrono en NodeJS no significa aleatorio.
http.createServer() es el primero en ejecutarse porque el servidor variable debe establecerse antes de su uso para evitar un error indefinido. Y el http.createServer es una función sincrónica asíncrona-vs-sincrónica