Home / Function/ listenPromise() — fastify Function Reference

listenPromise() — fastify Function Reference

Architecture documentation for the listenPromise() function in server.js from the fastify codebase.

Entity Profile

Dependency Diagram

graph TD
  05c0cb08_5c02_3bba_8db2_a75736753da4["listenPromise()"]
  39d7da74_a631_4522_4e09_0cc36c64a8f8["server.js"]
  05c0cb08_5c02_3bba_8db2_a75736753da4 -->|defined in| 39d7da74_a631_4522_4e09_0cc36c64a8f8
  style 05c0cb08_5c02_3bba_8db2_a75736753da4 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

lib/server.js lines 268–307

function listenPromise (server, listenOptions) {
  if (this[kState].listening && this[kState].closing) {
    return Promise.reject(new FST_ERR_REOPENED_CLOSE_SERVER())
  }
  if (this[kState].listening) {
    return Promise.reject(new FST_ERR_REOPENED_SERVER())
  }

  return this.ready().then(() => {
    // skip listen when aborted during ready
    if (this[kState].aborted) return

    const { promise, resolve, reject } = PonyPromise.withResolvers()

    const errEventHandler = (err) => {
      cleanup()
      this[kState].listening = false
      reject(err)
    }
    const listeningEventHandler = () => {
      cleanup()
      this[kState].listening = true
      resolve(logServerAddress.call(
        this,
        server,
        listenOptions.listenTextResolver || defaultResolveServerListeningText
      ))
    }
    function cleanup () {
      server.removeListener('error', errEventHandler)
      server.removeListener('listening', listeningEventHandler)
    }
    server.once('error', errEventHandler)
    server.once('listening', listeningEventHandler)

    server.listen(listenOptions)

    return promise
  })
}

Domain

Subdomains

Defined In

Frequently Asked Questions

What does listenPromise() do?
listenPromise() is a function in the fastify codebase, defined in lib/server.js.
Where is listenPromise() defined?
listenPromise() is defined in lib/server.js at line 268.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free