How do I use dequeue?

How do I use dequeue?

I'm trying to wrap my head about queue and dequeue; here's the description of dequeue from the api site:

When .dequeue() is called, the next function on the queue is removed from the queue, and then executed. This function should in turn (directly or indirectly) cause .dequeue() to be called, so that the sequence can continue.

Here's what this sounds like to me:

dequeue is called 
    the next function (fn) in the queue is removed from the queue
    fn is executed
      dequeue is called inside fn
the queue continues, but fn is not part of it any longer

In the example, though, it seems that dequeue is called from inside a function added with the queue method, and that calling dequeue from inside that function removes that function from the queue; can someone explain to me how this fits into what the description says? 

Maybe I'm completely confused