The callback functions of the nodejs are not a particular case of continuations. "Continuation" is a more general term than that.
Translating from wikipedia:
A continuation is a representation abstract of the execution flow state of a program. A continuation reifies implicit flow control in an explicit function
For example, suppose I am doing the following account:
(define (conta)
(* (+ 1 2) 4))
There is an implicit order of flow control when I perform these operations. I can explain it by converting the program to single assignment form:
a <- 1 + 2
b <- a * 4
Continuations are a way of representing this implicit execution order. Given a point in the code, the continuation of that point is a function that represents what will happen in the future. For example, the continuation of the sum operation point in the third row is a function (lambda (a) (a * 4))
One thing we can do with continuations is to write our program so that the continuations appear explicitly. This is called Continuation Passing Style and that’s what people do in Nodejs. In our example, this would be using operations like +-cps and *-cps instead of + and * that return values:
(define (conta-cps cont)
(+-cps 1 2 (lambda (a)
(*-cps a 4 cont)))
Programming like this has some benefits. For example, with continuations you can "pause" code execution. Just take the continuation and save it in some data structure and call it back later. Continuations also allow you to implement some control mechanisms yourself, such as "Return", "Try-catch", and iterators.
The problem is that it is a bag convert all its functions to CPS in hand. This is where first-class sequels come in, using call-with-Current-continuation (call/cc) you can write your code without sequels but you have access to sequels as if you had written the code in CPS.
I won’t give examples of call/cc because I think the code gets too complicated. In practice you can use other less powerful tools that give you similar benf;icios (can pause and restart program execution, etc). For example, in Scheme there are bounded continuations, in Python you have generators and in Lua you have corotins.