The nature of promises is that they remain immune to changing circumstances. Frank Underwood, ‘House of Cards’ You will often hear it said that JavaScript is a ‘functional’ programming language. It is described as such simply because functions are first-class values: many other features that define functional programming – immutable data, preference for recursion over looping, algebraic type syste